在 foreach 循环中使用函数是缓存结果,还是每次都调用该函数?

php
2022-08-30 18:31:42

在下面的代码中:

function a(){
    echo 'a';
    return array(1,2,3,4);
}

foreach(a() as $t){
    echo $t;    
}

我们可以看到a()只被调用一次,并且似乎返回的值被缓存了...
但后来我看到了这场辩论(参见对这个问题的评论),我错过了什么吗?


答案 1

不,您的测试是决定性的。

它多次计算第一个表达式是没有意义的。这是前循环的基本前提。

循环有三个参数,每次迭代都会计算第二个和第三个参数。for


答案 2

推荐