将函数返回结果传递给foreach循环

时间:2011-06-09 23:23:15

标签: php

出于好奇,以下两个选项在功能上是否相同?

$array_variable = function_that_creates_an_array();
foreach($array_variable as $a){
    do_something()
}

VS

foreach(function_that_creates_an_array() as $a){
    do_something()
}

只是想确保我没有在每次迭代时调用该函数或者像这样愚蠢的任何东西。

谢谢!

3 个答案:

答案 0 :(得分:11)

是的,它们基本相同。

唯一的区别是第一个将变量添加到当前范围(即,如果您在全局范围内)。

答案 1 :(得分:2)

两个片段将以相同的方式读取数组,而无需重新评估函数。

然而,在第二个片段中,由于您没有任何引用(变量),因此您将无法在循环期间访问完整数组。

http://www.php.net/manual/en/control-structures.foreach.php

答案 2 :(得分:0)

简单地说,是的,它们在功能上是一样的。

相关问题