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

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

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

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

$arr=func();

再执行:

foreach($arr as $row){
    echo $row;
}
阅读 3.8k
3 个回答

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

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

建议使用array_walk

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题