Del*_*D0D 5 php loops for-loop
我最近请求应用程序架构师在工作中查看php我编写的脚本,以自动执行我在帮助台部门每周执行的一些任务.
在他的评论中,他说
## Loops
Your loops are good, you didn't do anything bad like calling functions in the condition
for ($i=0; $i < count($array); $i++); is BAD
老实说,我以前从未想过在我的代码中这样做,但它让我想知道为什么会这么糟糕.
我认为这是因为,函数的结果可能是任何值,它似乎是创建无限循环的一种完美方式,并且通常会导致意外行为.
我试过谷歌搜索但找不到任何相关的结果所以我问:
为什么在for循环的条件下调用函数是不好的?
注意在count($array)在注释本身,对我来说,一个给我.当然,你只想缓存它.更具体地说,我的意思是在使用其他更复杂的功能的背景下.
对于那些肯定会想到"为什么不只是问那个写它的人"的人来说,他超级忙碌并且已经花时间来帮助我,我不想用太多的东西来推动"现在,你能解释所有的你对我的评论?"
for ($i=0; $i < count($array); $i++); //is not efficient
Run Code Online (Sandbox Code Playgroud)
是的,这使用效率不高,因为在每次调用迭代函数时都不好。您需要执行一次此功能。
$count = count($array);
for ($i= 0; $i < $count; $i++); //is much efficient
Run Code Online (Sandbox Code Playgroud)
因为在这段代码中count函数会执行一次。在您之前的代码中,count函数执行多次。
我能想到有几个原因:
count()示例中)