我女喷友跟我说哦, 那个啥, 听别人说php中最好用foreach不要用for, 因为性能会好点.
我第一反应就是觉得没可能, 第二反应是想一下为什么别人会有这样的结论.
我猜测有的孩纸测试for时, 大概用了以下形式:
for($i=0; $i<count($array); $i++){
...
}
孩纸, 每次循环都要count一下$array里有多少东西, 这可是要耗资源的, 除非将来某个版本的PHP会对这种方式做优化.改为以下形式:
$arraySize = count($array);
for($i=0; $i<$arraySize; $i++){
...
}
PHP对foreach的内部优化估计也是这样的.
然后我就上网找了一下持有"foreach比for效率高"观点的孩纸的实验是怎么做的, 找到其中一个结果:
http://www.phpq.net/research/foreach-while-for.html
果然如我所想, TA在测试for的时候, 用了以下的形式:
for($i = 0; $i < count($arr); $i++){
$str .= $arr[$i];
}
我拿TA的实验用例改为:
$size = count($arr);
for($i = 0; $i < $size; $i++){
$str .= $arr[$i];
效率就上来了.
分享到:
相关推荐
foreach、while、for性能比较
For 和 Foreach 的效率问题,先猜一下,再运行一下,看猜的对不对。
标准的for循环中的i是number类型,表示的是数组的下标,但是foreach循环中的i表示的是数组的key是string类型,因为js中一切皆为对象。自己试试 alert(typeof i);这个区别是小问题。现在我加上如下代码,上
for和forEach性能对比.md
foreach是对数组副本进行操作(通过拷贝数组),而while则通过移动数组内部指标进行操作,一般逻辑下认为,while应该比foreach快(因为foreach在开始执行的时候首先把数组复制进去,而while直接移动内部指标。...
php中的while循环,循环执行代码块制定的次数,或者当指定的条件为真时循环执行代码块。 ————————————————————- 在我们编写代码是时候,我们经常需要一块代码块重复执行多次。我们就可以使用...
PHP 数组 for foreach 循环 array_column函数.rar
输出字符三角形 输出背靠背字符三角形 输出字符菱形 输出交替字符倒三角形
循环语句为众多程序员们提供了很大的便利,有while、do…while、for和 foreach。而且foreach语句很简洁,但是它的优点不仅仅在于此,它的效率也是最高的。本文将详细给大家关于C#中foreach循环对比for循环的优势和...
for,foreach,iterator的用法和区别
for foreach测试代码 执行1000000万次字符串遍历操作。
本篇文章主要介绍了C#中的三种循环语句(while、for、foreach)的实现方式,需要的朋友可以参考下
PHP for和foreach循环 PHP do...while循环 PHP break/continue/exit PHP 数组 PHP 数字索引数组 PHP 非数字索引数组 PHP 多维数组 PHP 数组排序 PHP 多维数组排序 PHP 随机数组排序 PHP 文件内容载入数组 PHP 数组...
<php+mysql>PHP脚本条件判断,foreach循环,以及粘性表单
下面小编就为大家带来一篇浅谈php中的循环while、do...while、for、foreach四种循环。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
根据实际开发经验,介绍for与foreach的区别,正确使用for、foreach。解决开发时遇到“集合已修改 ; 可能无法执行枚举操作 ”的问题
foreach 是 Java 中的一种语法糖,几乎每一种语言都有一些这样的语法糖来方便程序员进行开发,编译期间以特定的字节码或特定的方式来对这些语法进行处理。能够提高性能,并减少代码出错的几率。
foreach-prop 对象的类数组方法 :warning_selector: 某些javascript实现不遵循对象键顺序。 使用keyOf , lastKeyOf , findKey和find方法时,请记住这一点。安装npm i foreach-propCDNjsDelivr < script src =" ...