Temel foreach döngüsü soru

6 Cevap php

Burada yardım için teşekkürler:

http://stackoverflow.com/questions/1744128/foreach-loops-stdclass-objects

Bir foreach döngüsü kurmak, ama bazen sorunun sonucu olmasıdır:

Warning: Invalid argument supplied for foreach() in /home/MYACCOUNT/public_html/the script.php on line 81

Ben orada foreach döngü doldurmak için hiçbir şey ama bir giriş gerçekten orada iken bu olay olduğunu korktum zaman olduğunu düşünüyorum.

Benim soru: sadece bir giriş olduğunda bir foreach döngüsü ne yapar?

6 Cevap

foreach yalnızca diziler, yani sarmak gerekir ki bir dizide bir eleman.

As of PHP 5, it is possible to iterate objects too. http://php.net/manual/en/control-structures.foreach.php

Nesneler üzerinde yineleme hakkında daha fazla bilgi için bkz: http://www.php.net/manual/en/language.oop5.iterations.php

foreach in PHP5 can iterate over an object, ya da bir Array.

I post this to balance those telling you that you can't use an object.

Diğer cevaplar kapağı gibi veri bir yinelenebiliyorsa Ve eğer, foreach, bu aynı her zaman sarılmış olmalıdır. Her zaman (sadece bir unsur olsa bile) bir dizi, ya da her zaman bir nesne (o bile sadece bir yöntemdir).

Oremj bir dizi gerektiğini söylüyor gibi. Bazen bir dizi, bazen tek bir şey varsa emin diziler her zaman çalışıyoruz yapmak için bir dizi çevirebilirsiniz. Bir şey bir dizi için attıktan sonra array ('bir şey') olacaktır. Sonra o ve döngü üzerinde döngü başlar ve 'bir şey' ile sona erecek olabilir.

edit: diğer bir nesne üzerinde döngü işaret gibi de mümkündür.

foreach yalnızca 1 öğe içeren bir dizi sadece iyi çalışır. Bu örneği deneyin:

$foodlist = array("burrito");

foreach ($foodlist as $food) {
  echo $food . "\n";
}

Örnek:

<?php

$array = array(1, 2, 3, 4, 5);
foreach ($array as $value) {
    echo $value."<br />";
}

?>

Bu deneyin:

// Make sure array is an array
if (!$array) $array = array();
if (!is_array($array)) $array = array($array);

foreach ($array as $value) {
    echo $value."<br />";
}