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) { /* … */ }