在 foreach 循环中使用函数是缓存结果,还是每次都调用该函数?
2022-08-30 18:31:42
在下面的代码中:
function a(){
echo 'a';
return array(1,2,3,4);
}
foreach(a() as $t){
echo $t;
}
我们可以看到a()只被调用一次,并且似乎返回的值被缓存了...
但后来我看到了这场辩论(参见对这个问题的评论),我错过了什么吗?
在下面的代码中:
function a(){
echo 'a';
return array(1,2,3,4);
}
foreach(a() as $t){
echo $t;
}
我们可以看到a()只被调用一次,并且似乎返回的值被缓存了...
但后来我看到了这场辩论(参见对这个问题的评论),我错过了什么吗?
不,您的测试是决定性的。
它多次计算第一个表达式是没有意义的。这是前循环的基本前提。
循环有三个参数,每次迭代都会计算第二个和第三个参数。for