巅云智能建站平台搭建版(创业门户版)火爆上线,终身授权!新增:文章智能采集+全站真静态打包+城市分站+智能小程序+非法词过滤+H5自适应+智能链词等功能功能详情
帮助文档Help

php foreach、while性能比较

一佰互联网站制作(www.yinxi.net) 发布日期 2019-05-01 19:06:15 浏览数: 105

foreach是对数组副本进行操作(通过拷贝数组),而while则通过移动数组内部指标进行操作,一般逻辑下认为,while应该比foreach快(因为foreach在开始执行的时候首先把数组复制进去,而while直接移动内部指标。),但结果刚刚相反。
在循环里进行的是数组“读”操作,则foreach比while快:
复制代码 代码如下:
foreach ($array as $value) {
echo $value;
}
while (list($key) = each($array)) {
echo $array[$key];
}

在循环里进行的是数组“写”操作,则while比foreach快:
复制代码 代码如下:
foreach ($array as $key => $value) {
echo $array[$key] = $value . "...";
}
while (list($key) = each($array)) {
$array[$key] = $array[$key] . "...";
}

总结:通常认为,foreach涉及到值复制,一定会比while慢,但实际上,如果仅仅是在循环里进行数组的读操作,那么foreach是很
快的,这是因为PHP采用的复制机制是“引用计数,写时复制”,也就是说,即便在PHP里复制一个变量,最初的形式从根本上说其实
仍然是引用的形式,只有当变量的内容发生变化时,才会出现真正的复制,之所以这么做是出于节省内存消耗得目的,同时也提升了
复制的效率。这样看来,foreach的高效读操作就不难理解了。另外,既然foreach不适合处理数组写操作,那么我们可以得出一个结
论,多数情况下,类似foreach ($array as $key => $value)形式的做数组写操作得代码都应该被替换成while (list($key) =
each($array))。这些技巧产生的速度差异在小项目里可能并不明显,但是在类似框架这样的大项目中,一次请求动辄便会涉及到几
百几千几万次数组循环操作,差异就会明显放大。
TAG标签: php   foreach、while性能比较  
一佰互联是全国知名建站品牌服务商,我们有九年网站建设网站制作、网页设计、php开发和域名注册及虚拟主机服务经验,提供的自助建站服务更是全国有名。近年来还整合团队优势自主开发了可视化多用户”巅云建站系统“3.0平台版,拖拽排版网站制作设计,轻松实现pc站、手机微网站、小程序、APP一体化全网营销网站建设 ,已成功的为全国上百家网络公司提供自助建站平台搭建服务。

相关新闻more

27
03月
12句抖音上最霸气的句子,要么出众,要么出局

简介:1、一生都在错过,谈什么后不后悔。2、别抱怨了,大家都很累,没谁能活的顺风顺水3、这段感情你辜负了我,那以后的日子我都会想方设法让你跪... >>详情

28
04月
php正则匹配html中带class的div

本文实例讲述了php正则匹配html中带class的div并选取其中内容的方法。分享给大家供大家参考。具体分析如下:先看一段html代码:复... >>详情

25
11月
做网站建网站-就用免费建站系统

做网站建网站-就用免费建站系统①一佰互联建站详细流程,建网站详细教程,仿站网站制作工具 建站宝盒视频教程:http://video.baid... >>详情

17
05月
让免费流量拯救你的店铺_巅云建站

一、淘宝搜索排名影响因素小林 排序主要有综合排序(也就是之前的默认排序)、按人气排序、按销量排序,这三个是目前淘宝中最集中的3个排序,也就是... >>详情

高端网站建设

美工兼顾SEO,为企业电子商务营销助力!

电话:

023-85725751
建站

产品

域名注册 虚拟主机 云服务器 企业邮局
智能建站 APP打包 微站/小程序 创业平台
网站推广 媒体营销 智能采集 AI机器人
400电话 短信营销 店销机器人
私人定制 门户网站