foreach
не является структурой управления с условием, которое проверяется до или после каждой итерации, например while
, for
или do … while
Вместо этого он берет массив, делает его внутреннюю копию и повторяет это.
Массив может быть передан через переменную (наиболее часто используемый вариант):
foreach ($arr as $val) { /* … */ }
Или с другим выражением, которое возвращает массив при оценке:
foreach (array('foo','bar') as $val) { /* … */ }
function f() { return array('foo','bar'); }
foreach (f() as $val) { /* … */ }