http://php.net/manual/en/control-structures.foreach.php
试图更好地理解 foreach 循环。在上面的文档中,它声明“第一种形式循环遍历由 array_expression 给出的数组。”
到底什么是array_expression?
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)