for loop最佳实践

时间:2012-10-05 21:54:01

标签: php

据我所知,每次在for循环中都会执行第二个和第三个表达式。

我总是理所当然地认为性能明智的第二个选项是推荐的,有人可以确认吗?

1)for($i=0;$i<=dosomething();$i++) [...]

2)

 $max = dosomething();
 for($i=0;$i<=$max;$i++) [...]

4 个答案:

答案 0 :(得分:5)

您不应该在循环定义中调用函数,因为该函数将在每次迭代时执行。当你只有一个小循环时,效果可以忽略不计,但是如果你有一个数百或数千次迭代的循环,你肯定会注意到。

但即使你只有一个小循环,这只是不好的做法。总而言之:不要。

答案 1 :(得分:4)

除非你的dosomething()函数返回不同的值并且可以一次完成,否则最好使用第二种方法。

$ options = array(1,2,3,4,5); $ element_count = count($ options);

在多个调用中返回相同值的count()函数可以保存在一个变量中,并在for循环中使用它。

如果您对性能非常严格,请使用++ $ i而不是$ i ++

答案 2 :(得分:3)

第二种方法总是要更好地进行预处理,特别是如果在doSomething()中有大量的工作要做。如果你只做了几十个循环,并且doSomething()只是返回一个局部变量,那么它就不会产生显着的差异。

答案 3 :(得分:-2)

是的我确认您可以根据需要搜索基准。

虽然我不知道它是否真的只是一个物体的吸气剂