Rumah >pembangunan bahagian belakang >tutorial php >php中++i 与 i++ 的区别比较_PHP教程

php中++i 与 i++ 的区别比较_PHP教程

WBOY
WBOYasal
2016-07-13 17:14:191186semak imbas

++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

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 赋给新变量。

性能优化

 

 代码如下 复制代码
方式一:
 
$begin = time();
$i = 0;
while(++$i {
  $j = 0;
  while(++$j     ;
  ;
}
$end = time();
 
时间 : 16s
 
方式二:
 
$begin = time();
$i = 0;
while($i {
  $j = 0;
  while($j     ++$j;
  ++$i;
}
$end = time();
 
时间:13s
 
方式三:
 
$begin = time();
$i = 0;
while($i {
  $j = 0;
  while($j     $j++;
  $i++;
}
$end = time();
 
时间:15s
 
方式四:
 
$begin = time();
$i = 0;
while($i++ {
  $j = 0;
  while($j++     ;
  ;
}
$end = time();
时间:13s

对比第一种方法和第二种方法, 因为在PHP中, 最终被执行的是OPCODE, 每行opline

都有俩个操作数, 对于操作数来说, 一般有3种类型的存取方式, 临时变量, 变量, 和编译时变量, 这三种变量

其中, 存取最快的是第三种, 编译器变量, 在OpCode执行过程中, 会讲一个变量的加一级引用存储在一个hash

结构中, 用来加快存取速度.

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/629024.htmlTechArticle++i 与 i++ 在很多编程中都有,对变量的增加+1操作,但是有先后问题,下面我来介绍一下他们在运行是的一些区别。 1、++i 的用法(以 a=++...
Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn