我不得不在PHP 5.1.6上开发一个网站,我刚刚在我的网站上发现了一个在5.2+上没有发生的错误。当使用foreach()迭代一个对象时,我得到以下错误:“致命错误:在post / pre递增/递减中用作数组的对象必须通过引用返回值...”
有谁知道如何将以下foreach循环转换为可与5.1.6一起使用的构造?提前谢谢!
foreach ($post['commercial_brands'] as $brand)
{
$comm_food = new Commercial_food_Model;
$comm_food->brand = $brand;
$comm_food->feeding_type_id = $f_type->id;
$comm_food->save();
}
答案 0 :(得分:1)
改进Coronatus的答案:
$max = count($post['commercial_brands']);
for ($i = 0; $i < $max; $i++)
{
$comm_food = new Commercial_food_Model;
$comm_food->brand = $post['commercial_brands'][$i];
$comm_food->feeding_type_id = $f_type->id;
$comm_food->save();
}
在循环条件下你永远不应该有一个函数,因为每次循环遍历它都会运行函数。
答案 1 :(得分:1)
$x = 0;
$length = count($post['commercial_brands']);
while($x < $length){
$comm_food = new Commercial_food_Model;
$comm_food->brand = $post['commercial_brands'][$x];
$comm_food->feeding_type_id = $f_type->id;
$comm_food->save();
$x++;
}
//而4 eva
答案 2 :(得分:0)
for ($i = 0; $i < count($post['commercial_brands']); $i++)
{
$comm_food = new Commercial_food_Model;
$comm_food->brand = $post['commercial_brands'][$i];
$comm_food->feeding_type_id = $f_type->id;
$comm_food->save();
}