问题描述
|
出于好奇,下面的两个选项在功能上是否等效?
$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
, 简单来说,是的,它们在功能上是相同的。