浅析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基础学习之变量的使用
Jun 09 PHP
PHP面向对象法则
Feb 23 PHP
php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符串
Apr 05 PHP
php输出指定时间以前时间格式的方法
Mar 21 PHP
php简单计算页面加载时间的方法
Jun 19 PHP
PHP将MySQL的查询结果转换为数组并用where拼接的示例
May 13 PHP
PHP合并数组函数array_merge用法分析
Feb 17 PHP
PHP实现数组的笛卡尔积运算示例
Dec 15 PHP
使用ucenter实现多站点同步登录的讲解
Mar 21 PHP
一文掌握PHP Xdebug 本地与远程调试(小结)
Apr 23 PHP
PHP7.0连接DB操作实例分析【基于mysqli】
Sep 26 PHP
laravel excel 上传文件保存到本地服务器功能
Nov 14 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&&mysql)四
2006/10/09 PHP
php while循环得到循环次数
2013/10/26 PHP
php调用shell的方法
2014/11/05 PHP
PHP7安装Redis扩展教程【Linux与Windows平台】
2016/09/30 PHP
php弹出提示框的是实例写法
2019/09/26 PHP
jquery.validate的使用说明介绍
2013/11/12 Javascript
Node.js安装教程和NPM包管理器使用详解
2014/08/16 Javascript
JS简单限制textarea内输入字符数量的方法
2015/10/14 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件包装
2015/11/20 Javascript
js获取本机操作系统类型的两种方法
2015/12/19 Javascript
JavaScript中创建对象的7种模式详解
2017/02/21 Javascript
ES6数组的扩展详解
2017/04/25 Javascript
基于JS递归函数细化认识及实用实例(推荐)
2017/08/07 Javascript
基于js中style.width与offsetWidth的区别(详解)
2017/11/12 Javascript
JS实现标签滚动切换效果
2017/12/25 Javascript
Node快速切换版本、版本回退(降级)、版本更新(升级)
2021/01/07 Javascript
python操作mysql数据库
2017/03/05 Python
python使用PyCharm进行远程开发和调试
2017/11/02 Python
python3实现表白神器
2019/04/09 Python
Python面向对象之继承和多态用法分析
2019/06/08 Python
django 连接数据库 sqlite的例子
2019/08/14 Python
python3 webp转gif格式的实现示例
2019/12/10 Python
PyTorch 解决Dataset和Dataloader遇到的问题
2020/01/08 Python
Python插件机制实现详解
2020/05/04 Python
HTML5中的nav标签学习笔记
2016/06/24 HTML / CSS
斯凯奇美国官网:SKECHERS美国
2016/08/20 全球购物
如何删除一个表里面的重复行
2013/07/13 面试题
给老师的道歉信
2014/01/11 职场文书
人力资源经理的岗位职责范本
2014/02/28 职场文书
倡导文明标语
2014/06/16 职场文书
2015年司机年终工作总结
2015/05/14 职场文书
难以忽视的真相观后感
2015/06/05 职场文书
公司员工管理制度
2015/08/04 职场文书
nginx网站服务如何配置防盗链(推荐)
2021/03/31 Servers
Python基础知识之变量的详解
2021/04/14 Python
Python语言规范之Pylint的详细用法
2021/06/24 Python