优化PHP——在foreach循环中使用array_keys()真的能提高性能吗?


Optimizing PHP - does using array_keys() in foreach loops really increase performance?

我在几篇不同的文章中读到,在foreach循环中使用array_keys()可以提高性能,但在实践中,我真的没有注意到在大型数组中使用array_keys()对代码的速度有任何提高。

的例子:

foreach(array_keys($myArray) as $ak){
   $arrayElement =& $myArray[$ak];
   //do whatever I need to do with massive array ...
}

使用大型数组获得一些性能增益是合乎逻辑的-是的。这样,PHP在循环中只复制数组的键,而不是键+值,从而减少了内存占用。

然而,正如评论部分所指出的那样,这不是您通常会注意到的事情。养成这些习惯无疑是一种很好的做法,但除非您正在编写相当复杂/繁重的脚本,否则您无法在基准测试分数之外看到它。