Как выполнить итерации по массиву объектов без foreach и ArrayAccess

Я должен разработать сайт на 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();
                    }
1
задан hakre 24 December 2012 в 23:19
поделиться

3 ответа

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();
}
0
ответ дан 3 September 2019 в 00:06
поделиться

Улучшение ответа Коронатуса:

$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
ответ дан 3 September 2019 в 00:06
поделиться
$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 Евы

1
ответ дан 3 September 2019 в 00:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: