Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP对象创建循环_Php_Arrays_Loops_Object - Fatal编程技术网

PHP对象创建循环

PHP对象创建循环,php,arrays,loops,object,Php,Arrays,Loops,Object,我有一门操纵命令的课。我也为每个目的创建了多个方法。可以有多个从db生成的订单要处理。现在,我要做的是,循环遍历每个订单,并创建订单id为构造函数参数的对象 foreach($order_row as $order_rows) { $order_id=$order_rows->order_id ; $warehouse =new WarehouseManager($order_id); $warehouse->ProcessWarehouse

我有一门操纵命令的课。我也为每个目的创建了多个方法。可以有多个从db生成的订单要处理。现在,我要做的是,循环遍历每个订单,并创建订单id为构造函数参数的对象

foreach($order_row as $order_rows)
{
       $order_id=$order_rows->order_id ;
       $warehouse =new WarehouseManager($order_id);
       $warehouse->ProcessWarehouse();
}

这样循环行吗?有没有更好的方法来处理这个问题?

您不需要为每个订单创建新对象。如果返回了大量记录,您只需创建一个对象即可逐个处理订单

$warehouse = new WarehouseManager();
foreach($order_row as $order_rows)
{
    $order_id=$order_rows->order_id ;
    $warehouse->setOrder($order_id);  // this method should be implemented first
    $warehouse->ProcessWarehouse();
}

这看起来很好用。你预见到它有什么具体的问题吗?“最佳解决方案”通常更多地取决于上下文和目标,而不是其他任何东西。创建对象数组,这样您甚至可以在循环后访问所有订单。您在每次迭代中都会覆盖
$warehouse
,并且看起来并不是每次迭代都需要一个新的
WarehouseManager
,但这确实取决于类的功能。通过构造函数发送订单id是很重要的。那么这会有好处吗?