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

问题描述

| 出于好奇,下面的两个选项在功能上是否等效?
$array_variable = function_that_creates_an_array();
foreach($array_variable as $a){
    do_something()
}
foreach(function_that_creates_an_array() as $a){
    do_something()
}
只是要确保我不会在每次迭代或类似的愚蠢的事情上都调用函数。 谢谢!     

解决方法

        是的,它们基本上是等效的。 唯一的区别是第一个将变量添加到当前作用域(即您在全局作用域中)。     ,        这两个代码段将以相同的方式读取数组,而无需重新评估函数。 不过,在第二个代码段中,由于在循环上没有任何引用(变量),因此您将无法访问整个数组。 http://www.php.net/manual/en/control-structures.foreach.php     ,        简单来说,是的,它们在功能上是相同的。