2017-08-04 129 views
2

http://php.net/manual/en/control-structures.foreach.php“array_expression”在php中意味着什么?

试图更好地了解foreach循环。在上面的文档中,它声明“第一个形式循环由array_expression给出的数组。

世界上有什么是array_expression?

+0

'array_expression'是_possible variable_名( 'foreach(array_expression为$ value)'),它也可以是一个实际的数组 –

+0

'array_expression'只是一个PHP数组或对象 – Matthew

回答

2

一种阵列运算是导致在阵列中任何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){} 
1

php manual的说明页面

表达式是PHP最重要的基石。在PHP中,你写的几乎任何东西都是一个表达式。定义表达式的最简单但最准确的方法是“任何有价值的东西”。

所以,这意味着array_expression只是虚拟文本,让你知道,在foreach需要阵列功能。

在这种情况下,

$arr = array(1, 2, 3); 

foreach ($arr as $value) { 
    var_dump($value); 
} 

将导致:

int(1) int(2) int(3) 
+0

我也会举例说明'foreach(array(1,2,3)as&$ value){'(或类似的样式)来显示在循环中使用数组的区别 –

+0

但是数组如何成为一个表达式? –

+0

当我开始学习PHP时,我挣扎于同样的事情上。这是一个完全专注于表达意味着什么的页面[表达式是最重要的构建块......](http://php.net/manual/en/language.expressions.php) – samayo