++i 与 i++ 在很多编程中都有,对变量的增加+1操作,但是有先后问题,下面我来介绍一下他们在运行是的一些区别.
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
立即学习“PHP免费学习笔记(深入)”;
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
$begin = time();
$i = 0;
while (++$i < 10000) {
$j = 0;
while (++$j < 10000)
;
;
}
$end = time();
?>
时间 : 16s
方式二:
<?php
$begin = time();
$i = 0;
while ($i < 10000) {
$j = 0;
while ($j < 10000) ++$j;
++$i;
}
$end = time();
?>
时间:13s
方式三:
<?php
$begin = time();
$i = 0;
while ($i < 10000) {
$j = 0;
while ($j < 10000) $j++;
$i++;
}
$end = time();
?>
时间:15s
方式四:
<?php
$begin = time();
$i = 0;
while ($i++ < 10000) {
$j = 0;
while ($j++ < 10000)
;
;
}
$end = time();
?>时间:13s
对比第一种方法和第二种方法, 因为在PHP中, 最终被执行的是OPCODE, 每行opline都有俩个操作数, 对于操作数来说, 一般有3种类型的存取方式, 临时变量, 变量, 和编译时变量, 这三种变量,其中, 存取最快的是第三种, 编译器变量, 在OpCode执行过程中, 会讲一个变量的加一级引用存储在一个hash
结构中, 用来加快存取速度.
教程网址:
欢迎收藏∩_∩但请保留本文链接。
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号