PHP中for循环与foreach的区别


Posted in PHP onMarch 06, 2017

for循环与foreach的区别

foreach 依赖 IEnumerable.

第一次 var a in GetList() 时调用 GetEnumerator 返回第一个对象并赋给a,

以后每次再执行 var a in GetList() 的时候调用 MoveNext.直到循环结束.

期间GetList()方法只执行一次.

+ View Code

for 循环靠下标定位.    list[3] 相当于 *(list + 3).

+ View Code

or 循环每次循环会调用 GetCount() 来比较长度. 而 foreach 不考虑长度,只调用一次GetList().

结论.

在固定长度或长度不需要计算的时候for循环效率高于foreach.

在不确定长度,或计算长度有性能损耗的时候,用foreach比较方便.

并且foreach的时候会锁定集合中的对象.期间不能修改.

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

PHP 相关文章推荐
PHP 解决utf-8和gb2312编码转换问题
Mar 18 PHP
PHP多线程批量采集下载美女图片的实现代码(续)
Jun 03 PHP
php截取中文字符串不乱码的方法
Dec 25 PHP
ThinkPHP框架设计及扩展详解
Nov 25 PHP
php读取文件内容的方法汇总
Jan 24 PHP
php中switch与ifelse的效率区别及适用情况分析
Feb 12 PHP
php二维数组合并及去重复的方法
Mar 04 PHP
PHP提高编程效率的20个要点
Sep 23 PHP
yii添删改查实例
Nov 16 PHP
Linux环境下php实现给网站截图的方法
May 03 PHP
关于PHP转换超过2038年日期出错的问题解决
Jun 28 PHP
php实现微信企业付款到个人零钱功能
Oct 09 PHP
微信公众平台开发-微信服务器IP接口实例(含源码)
Mar 05 #PHP
php实现留言板功能
Mar 05 #PHP
Linux服务器下PHPMailer发送邮件失败的问题解决
Mar 04 #PHP
php获取网站根目录物理路径的几种方法(推荐)
Mar 04 #PHP
PHP获取路径和目录的方法总结【必看篇】
Mar 04 #PHP
php redis实现对200w用户的即时推送
Mar 04 #PHP
php获取目录中所有文件名及判断文件与目录的简单方法
Mar 04 #PHP
You might like
BBS(php & mysql)完整版(八)
2006/10/09 PHP
判断PHP数组是否为空的代码
2011/09/08 PHP
php curl获取网页内容(IPV6下超时)的解决办法
2013/07/16 PHP
php微信支付之APP支付方法
2015/03/04 PHP
php实现留言板功能
2017/03/05 PHP
php基于环形链表解决约瑟夫环问题示例
2017/11/07 PHP
JQuery 构建客户/服务分离的链接模型中Table分页代码效率初探
2010/01/22 Javascript
jquery 笔记 事件
2011/11/02 Javascript
JS实现自适应高度表单文本框的方法
2015/02/25 Javascript
使用DNode实现php和nodejs之间通信的简单实例
2015/07/06 NodeJs
javascript实现密码验证
2015/11/10 Javascript
javascript跑马灯抽奖实例讲解
2020/04/17 Javascript
JavaScript禁止复制与粘贴的实现代码
2016/05/16 Javascript
原生js实现键盘控制div移动且解决停顿问题
2016/12/05 Javascript
servlet+jquery实现文件上传进度条示例代码
2017/01/25 Javascript
MUI 上拉刷新/下拉加载功能实例代码
2017/04/13 Javascript
JavaScript箭头函数_动力节点Java学院整理
2017/06/28 Javascript
详解如何在vue项目中使用lodop打印插件
2018/09/27 Javascript
vue移动端实现手机左右滑动入场动画
2020/06/17 Javascript
微信小程序 数据缓存实现方法详解
2019/08/26 Javascript
使用jQuery实现掷骰子游戏
2019/10/24 jQuery
vue计算属性+vue中class与style绑定(推荐)
2020/03/30 Javascript
Vue父组件监听子组件生命周期
2020/09/03 Javascript
[00:09]DOTA2全国高校联赛 精彩活动引爆全场
2018/05/30 DOTA
[10:54]Team Spirit vs Navi
2018/06/07 DOTA
Python ORM框架SQLAlchemy学习笔记之数据添加和事务回滚介绍
2014/06/10 Python
Python 专题二 条件语句和循环语句的基础知识
2017/03/19 Python
Python多进程库multiprocessing中进程池Pool类的使用详解
2017/11/24 Python
使用Python实现分别输出每个数组
2019/12/06 Python
关于初始种子自动选取的区域生长实例(python+opencv)
2020/01/16 Python
python 已知三条边求三角形的角度案例
2020/04/12 Python
Python configparser模块应用过程解析
2020/08/14 Python
浅谈html5与APP混合开发遇到的问题总结
2018/03/20 HTML / CSS
英国高街电视:High Street TV
2018/05/22 全球购物
Farfetch美国:奢侈品牌时尚购物平台
2019/05/02 全球购物
go原生库的中bytes.Buffer用法
2021/04/25 Golang