Как назначить пары значений ключа массива парам значений атрибутов объекта в переполнении стека

Я хотел знать, как назначить пары значений ключа массива парам значений атрибутов объекта в PHP. Это то, что я пытаюсь Я использую конструктор, чтобы установить все атрибуты, посылая все значения из массива через параметр при создании объекта. Но я считаю, что должен быть более краткий и эффективный способ сделать это. если кто-нибудь знает, пожалуйста, поделитесь.

function display_stock($connection)
{
$query = "SELECT * FROM `stock` ";
$result= mysqli_query($connection, $query);
$stock = array();
for ($i = 0;$row= mysqli_fetch_assoc($result); $i++)
{
$stock[$i] = new stock( $row);
}
return $stock;
}

Это код конструктора

public function __construct($l_code, $date, $all_lengths_size, $overall_cost)
{
$this->l_code=$l_code;
$this->date=$date;
$this->all_lengths_size=$all_lengths_size;
$this->overall_cost=$overall_cost;
}

Обратите внимание, что мне нужно возвращать массив объектов, поэтому передавать только $ row здесь невозможно.

1

Решение

Вы можете использовать конструктор, который соответственно устанавливает свойства, например:

public function __construct($row){
foreach ($row as $prop=>$value){
$this->$prop=$value;
}
}

или вы можете установить только свойства, которые вас интересуют, как это

public function __construct($row){
$propertiesilike=array("customer_name", "p_type");
foreach ($propertiesilike as $prop){
if(isset($row[$prop])){
$this->$prop=$value;
}
}
}
1

Другие решения

Другой вариант, предполагая, что запрос возвращает столбцы, которые должны заполнять объект, можно использовать mysqli_fetch_object():

while($sale[] = mysqli_fetch_object($result, 'sale')) {}

Это заполняет свойства перед вызовом __construct(), Существует третий параметр для передачи параметров в конструктор.

2

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector