php中的 i详解,浅析PHP中的i++与++i的区别及效率
先看看基本区别:
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中的 i详解,浅析PHP中的i++与++i的区别及效率相关推荐
- python中new方法详解及_Python中new方法的详解
new_ 方法是什么? __new__方法其实就是创建对象的方法 new()方法是在类准备将自身实例化时调用. 一个类可以有多个位置参数和多个命名参数,而在实例化开始之后,在调用 init()方法之前 ...
- 【Android游戏开发之八】游戏中添加音频-详解MediaPlayer与SoundPoo!并讲解两者的区别和游戏中的用途!...
为什么80%的码农都做不了架构师?>>> 李华明Himi 原创,转载务必在明显处注明: 转载自 [黑米GameDev街区] 原文链接: http://www.himigam ...
- Java中throw re_详解Java编程中throw和throws子句的使用方法
java throw:异常的抛出程序可以用throw语句抛出明确的异常.throw语句的通常形式如下: throw throwableinstance; 这里,throwableinstance一定是 ...
- java中的controller_详解Spring Boot中Controller用法
Controller Controller是SpringBoot里最基本的组件,他的作用是把用户提交来的请求通过对URL的匹配,分配个不同的接收器,再进行处理,然后向用户返回结果.他的重点就在于如何从 ...
- linux中dir命令,详解Linux系统中ls和dir命令的组合使用
ls或dir命令:列出当前目录的内容 ls(list的缩写)命令可以列出当前目录的内容.dir命令是ls命令的一个别名,也是directory的缩写.通常列出的文件会以不同的颜色进行显示,不同的颜色代 ...
- 在linux中hdparm作用,详解Linux系统中hdparm硬盘检测工具的使用
在linux下可以使用hdparm工具查看硬盘的相关信息或对硬盘进行测速.优化.修改硬盘相关参数设定.我主要常用这个工具来测试硬盘速度. hdparm(hard disk parameters) 功能 ...
- js路由在php上面使用,React中路由使用详解
这次给大家带来React中路由使用详解,React中路由使用的注意事项有哪些,下面就是实战案例,一起来看一下. 路由 通过 URL 映射到对应的功能实现,React 的路由使用要先引入 react-r ...
- Java 初始化 代码块_Java中初始化块详解及实例代码
Java中初始化块详解 在Java中,有两种初始化块:静态初始化块和非静态初始化块. 静态初始化块:使用static定义,当类装载到系统时执行一次.若在静态初始化块中想初始化变量,那仅能初始化类变量, ...
- vue中mint-ui使用详解
这次给大家带来vue中mint-ui使用详解,vue中mint-ui使用的注意事项有哪些,下面就是实战案例,一起来看一下. mint-ui在vue中的使用,供大家参考,具体内容如下 首先放上mint- ...
最新文章
- GMQ稳定币可降低交易成本,构建智能化支付生态体系
- matlab的fft函数写法,matlab的fft函数的使用例子
- 字符流复制Java文件
- 在Ubuntu上创建并测试GRE tunnel
- Android Weekly Notes Issue #218
- 优化SQL的执行速度
- JavaScript 开发进阶:理解 JavaScript 作用域和作用域链
- python如何识别文件中的空行?
- 天然气故障代码大全_美的、格力中央空调常见故障代码大全
- C语言学习 7-9 统计素数并求和
- 学计算机如何护眼,长期看电脑如何保护眼睛 吃这些有效保护视力
- golang 环境搭建-windows
- 移动硬盘中安装ubuntu系统——Vmware Workstation安装
- 学习笔记 time模块练习 纪念日计算
- arduino nano 蓝牙_ESP32模拟无线蓝牙鼠标自制翻页笔神器
- ETC“大跃进”乱象背后:超级工程引发新的AI盛宴
- Ubuntu中Kdevelop的安装和使用
- 如何使用 Javascript 截断/切片/修剪字符串中的最后一个字符?
- springboot整合 neo4j (OGM+JPA方式操作图数据库)
- 欸,自娱自乐的学习必然是缓慢的
热门文章
- java异常体系_Java异常体系(Throwable、Error、Exception)
- 构建指定仓库_使用Travis CI自动构建和部署你的GitBook
- unity 获取预制体_Unity打包插件AssetsBundleBrowser的使用
- Git分支简介与使用——Git的学习与使用(五)
- 用GVIM/VIM写Verilog——VIM配置分享
- ulimit命令学习
- Linux下的基础命令介绍(二)
- mysql存储过程判断多个条件语句_存储过程里多条件判断(SQL组合查询)
- [linux]centos6.3安装flash插件rpm方式
- TableCache设置过小造成MyISAM频繁损坏