PHP在foreach中引入function的效率如何?

LowB
  • 231

例如,我运行一个foreach循环:

foreach(func() as $row){
echo $row;
}

此时func()是运行一次还是运行多次?
用不用像网上所说为了效率优化,先定义:

$arr=func();

再执行:

foreach($arr as $row){
    echo $row;
}
回复
阅读 2.8k
3 个回答
✓ 已被采纳

foreach第一次会求func的结果,然后将这个函数结果的拷贝进行遍历,主要看foreach的运行机制,所以只求值一次,func函数只执行一次

按解释来说应该是执行一次,不过为了代码好理解最好先求出值再foreach

建议使用array_walk

宣传栏