如何在 PHP 中将数组的键值对分配给对象的属性值对
How to assign an array's key value pairs to object's attribute value pairs in PHP
我想知道如何在 PHP 中将数组的键值对分配给对象的属性值对。这就是我正在尝试的。我正在使用构造函数来设置所有属性,方法是在创建对象时通过参数从 rm 数组发送所有值。但我相信应该有一种更简洁有效的方法来做到这一点。如果有人知道请分享。
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;
}
请注意,我必须 return 一个对象数组,因此仅传递 $row 在这里是不可行的。
您可以使用相应地设置属性的构造函数,如下所示:
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=>$val){
if(isset($row[$prop])){
$this->$prop=$row[$prop];
}
}
}
另一种选择,假设查询返回应填充对象的列,您可以使用 mysqli_fetch_object()
:
while($sale[] = mysqli_fetch_object($result, 'sale')) {}
这会在调用 __construct()
之前填充属性。还有第三个参数给构造函数传递参数。
我想知道如何在 PHP 中将数组的键值对分配给对象的属性值对。这就是我正在尝试的。我正在使用构造函数来设置所有属性,方法是在创建对象时通过参数从 rm 数组发送所有值。但我相信应该有一种更简洁有效的方法来做到这一点。如果有人知道请分享。
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;
}
请注意,我必须 return 一个对象数组,因此仅传递 $row 在这里是不可行的。
您可以使用相应地设置属性的构造函数,如下所示:
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=>$val){
if(isset($row[$prop])){
$this->$prop=$row[$prop];
}
}
}
另一种选择,假设查询返回应填充对象的列,您可以使用 mysqli_fetch_object()
:
while($sale[] = mysqli_fetch_object($result, 'sale')) {}
这会在调用 __construct()
之前填充属性。还有第三个参数给构造函数传递参数。