foreach(func() as $item)...
Yukarıda sadece func()
kez arayacak, ama neden? Tam olarak ne oluyor?
foreach
is not a control structure with a condition that is tested before or after each iteration like while
, for
ya da do … while
. Bunun yerine, bir dizi alır dahili bunun bir kopyasını yapar ve dolaşır.
Dizi ya bir değişken (en çok kullanılan varyant) üzerinden aktarılabilir:
foreach ($arr as $val) { /* … */ }
Ya değerlendirildiğinde bir dizi döndürür başka ifade ile:
foreach (array('foo','bar') as $val) { /* … */ }
function f() { return array('foo','bar'); }
foreach (f() as $val) { /* … */ }