Nasıl foreach PHP yürütülür?

3 Cevap php
foreach(func() as $item)...

Yukarıda sadece func() kez arayacak, ama neden? Tam olarak ne oluyor?

3 Cevap

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

foreach dizisini kabul eder. Sen aslında, bir kez kendinizi () fonk çağırarak, ve foreach yapısına çıkan dizi geçirmeden hangi olabilir üzerinde döngü.

Bir kereden fazla işlevi çağırmak gerek yoktur - bu iterated bir dizi döndürür.