浅析PHP中的i++与++i的区别及效率


Posted in PHP onJune 15, 2016

先看看基本区别:

i++ :先在i所在的表达式中使用i的当前值,后让i加1

++i :让i先加1,然后在i所在的表达式中使用i的新值

看一些视频教程里面写for循环的时候都是写 ++i 而不是 i++,上网搜索了一下,原来有效率问题

++i相当于下列代码

i += 1; 
return i;

i++相当于下列代码

j = i; 
i += 1; 
return j;

当然如果编译器会将这些差别都优化掉,那么效率就都差不多了。

再给大家详细说下++i 与 i++ 的区别

1、++i 的用法(以 a=++i ,i=2 为例)

先将 i 值加 1 (也就是 i=i+1 ),然后赋给变量 a (也就是 a=i ),

则最终 a 值等于 3 , i 值等于 3 。

所以 a=++i 相当于 i=i+1 ,a=i

2、i++ 的用法(以 a=i++ ,i=2 为例)

先将 i 值赋给变量 a (也就是 a=i ),然后 i 值加 1 (也就是 i=i+1 ),

则最终 a 值等于 2 ,i 值等于 3 。

所以 a=i++ 相当于 a=i , i=i+1

3、++i 与 i++

a=++i 相当于 i++ , a=i

a=i++ 相当于 a=i , i++

4、++i 与 i++ 单独使用时,相当于 i=i+1

如果赋给一个新变量,则 ++i 先将 i 值加 1 ,而 i++ 先将 i 赋给新变量。

以上所述是小编给大家介绍的PHP中的i++与++i的区别及效率的全部叙述,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
用php来检测proxy
Oct 09 PHP
随时给自己贴的图片加文字的php水印
Mar 16 PHP
PHP的substr_replace将指定两位置之间的字符替换为*号
May 04 PHP
调整优化您的LAMP应用程序的5种简单方法
Jun 26 PHP
Thinkphp模板中使用自定义函数的方法
Sep 23 PHP
LotusPhp笔记之:Cookie组件的使用详解
May 06 PHP
ThinkPHP3.1新特性之字段合法性检测详解
Jun 19 PHP
php多任务程序实例解析
Jul 19 PHP
php实现计算百度地图坐标之间距离的方法
May 05 PHP
解决PHP 7编译安装错误:cannot stat ‘phar.phar’: No such file or directory
Feb 25 PHP
PHP连接MySQL数据库三种实现方法
Dec 10 PHP
PHP7 弃用功能
Mar 09 PHP
学习PHP session的传递方式
Jun 15 #PHP
php实现图片上传时添加文字和图片水印技巧
Apr 18 #PHP
PHP实现适用于文件内容操作的分页类
Jun 15 #PHP
PHP实现适用于自定义的验证码类
Jun 15 #PHP
php实现常见图片格式的水印和缩略图制作(面向对象)
Jun 15 #PHP
使用JavaScript创建新样式表和新样式规则
Jun 14 #PHP
PHP list() 将数组中的值赋给变量的简单实例
Jun 13 #PHP
You might like
php下使用SMTP发邮件的代码
2008/01/10 PHP
PHP file_get_contents 函数超时的几种解决方法
2009/07/30 PHP
七款最流行的PHP本地服务器分享
2013/02/19 PHP
使用phpQuery采集网页的方法
2013/11/13 PHP
php使用filter过滤器验证邮箱 ipv6地址 url验证
2013/12/25 PHP
ThinkPHP模型详解
2015/07/27 PHP
PHP判断是手机端还是PC端 PHP判断是否是微信浏览器
2017/03/15 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
2020/02/21 PHP
javascript五图轮播切换实用版
2012/08/17 Javascript
javascript监听鼠标滚轮事件浅析
2014/06/05 Javascript
jQuery分组选择器用法实例
2014/12/23 Javascript
js电话号码验证方法
2015/09/28 Javascript
js编写贪吃蛇的小游戏
2020/08/24 Javascript
jQuery和hwSlider实现内容响应式可触控滑动切换效果附源码下载(二)
2016/06/22 Javascript
vue.js通过自定义指令实现数据拉取更新的实现方法
2016/10/18 Javascript
jQuery validata插件实现方法
2017/06/25 jQuery
Vue.js的动态组件模板的实现
2018/11/26 Javascript
element-ui表格合并span-method的实现方法
2019/05/21 Javascript
JsonServer安装及启动过程图解
2020/02/28 Javascript
[23:18]Spirit vs Liquid Supermajor小组赛A组 BO3 第二场 6.2
2018/06/03 DOTA
Python随手笔记之标准类型内建函数
2015/12/02 Python
Python使用itchat模块实现简单的微信控制电脑功能示例
2019/08/26 Python
Python操作Mongodb数据库的方法小结
2019/09/10 Python
PyCharm刷新项目(文件)目录的实现
2020/02/14 Python
html2canvas把div保存图片高清图的方法示例
2018/03/05 HTML / CSS
ROSEFIELD手表荷兰官方网上商店:北欧极简设计女士腕表品牌
2018/01/24 全球购物
澳大利亚宠物食品和用品商店:PETstock
2020/01/02 全球购物
拉拉队口号
2014/06/16 职场文书
企业党支部工作总结2015
2015/05/21 职场文书
2015年机关后勤工作总结
2015/05/26 职场文书
推广普通话主题班会
2015/08/17 职场文书
《只有一个地球》教学反思
2016/02/16 职场文书
公司晚会主持词
2019/04/17 职场文书
MySQL单表千万级数据处理的思路分享
2021/06/05 MySQL
java代码实现空间切割
2022/01/18 Java/Android
Java虚拟机内存结构及编码实战分享
2022/04/07 Java/Android