Я должен разработать сайт на PHP 5.1.6, и я только что столкнулся с ошибкой в своем сайте, которого не происходит на 5,2 +. При использовании foreach () для итерации по объекту я получаю следующую ошибку: "Фатальная ошибка: Объекты, используемые в качестве массивов в инкременте/декременте сообщения/пред, должны возвращать значения ссылкой..."
Кто-либо знает, как преобразовать следующий цикл 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();
}
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();
}
Улучшение ответа Коронатуса:
$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();
}
Вы никогда не должны иметь функцию в состоянии цикла, потому что каждый раз, когда цикл повторяется, он будет запустить функцию.
$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 Евы