使用典型的admin chat_id
循环时,PHPStorm建议更改它以获得更好的效果。我真的不明白这个建议。我该怎么改变它?
答案 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;