Foreach ve ArrayAccess olmadan nesneleri bir dizi üzerinde yineleme nasıl

2 Cevap php

PHP 5.1.6 üzerinde bir siteyi geliştirmek için yaşıyorum ve ben sadece 5.2 + üzerinde olmuyor Sitemde bir hata geldim. Foreach () bir nesne üzerinde yineleme için kullanırken, ben hata şu olsun: "Önemli hata: post / pre arttırma / eksiltme diziler olarak kullanılan nesneleri referans değerler dönmelidir ..."

Herkes 5.1.6 ile çalışacak bir yapı için aşağıdaki foreach döngü dönüştürmek nasıl biliyor mu? Şimdiden teşekkürler!

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();
                    }

2 Cevap

Coronatus cevabı üzerine artırma:

$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();
}

Döngü etrafında gider her zaman işlevi çalıştırmak olacaktır çünkü, bir döngünün durumda bir işleve sahip asla.

$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++;
}

/ / Süre 4 eva