改进PHP'for'循环

时间:2016-02-01 08:57:41

标签: php performance for-loop

使用典型的admin chat_id循环时,PHPStorm建议更改它以获得更好的效果。我真的不明白这个建议。我该怎么改变它?

PHPStorm suggestion

3 个答案:

答案 0 :(得分:56)

count($data)

在每个迭代的示例中,它必须再次for($i = 0, $iMax = count($data); $i <= $iMax; $i++){}

count($data)

在此示例中,只需{{1}}一次。

这就是区别。

答案 1 :(得分:13)

如果在for循环中执行count(),那么每次迭代都会执行它,并且调用该函数会产生性能开销。

如果您在for循环之前调用for并将结果分配给变量,那么与for($i = 0; $i <= count($data); $i++){}循环中的变量进行比较,您不需要进行函数调用开销,所以它更快

答案 2 :(得分:12)

通过以您的方式进行循环,每次迭代都需要评估$loopMax = count($data); for ($i = 0; $i <= $loopMax; $i++) { // Your code here } 。如果列表中有很多项目,可能需要一段时间(相对)来计算这些项目,并且每次都必须这样做。

它正在潜水的提示是在开始时将变量设置为count($ data)的值,然后使用该变量作为循环限制,当它仅被评估一次时。

这可以通过两种方式完成:

for ($i=0, $loopMax = count($data); $i <= $loopMax; $i++) {
    // your code here
}

vector_c<1,2,3>::sum<vector_c<3,2,1>>::type asdf;