http://php.net/manual/en/control-structures.foreach.php
Пытаюсь лучше понять цикл foreach. В документации выше говорится: «Первая форма зацикливается на массиве, заданном array_expression.»
Что в мире является выражением array_expression?
array_expression любой выражение это приводит к массиву. Так что это выражения, которые сами по себе не являются массивами, но при вычислении приводят к массиву:
foreach(range(1, 5) as $val){}
Или же:
foreach($array = range(1, 5) as $val){}
Или же:
class Test {
public static function do_it() {
return range(1, 5);
}
}
foreach(Test::do_it() as $val){}
От Руководство по PHPстраница описания
Выражения являются наиболее важными строительными блоками PHP. В PHP почти все, что вы пишете, является выражением. Простейшим, но наиболее точным способом определения выражения является «все, что имеет значение».
Итак, это означает array_expression
это просто тупой фиктивный текст, чтобы вы знали, что foreach принимает функцию массива.
В этом случае,
$arr = array(1, 2, 3);
foreach ($arr as $value) {
var_dump($value);
}
приведет:
int(1) int(2) int(3)