Heim > php教程 > php手册 > Hauptteil

php中++i 与 i++ 的区别比较

WBOY
Freigeben: 2016-05-25 16:47:20
Original
1293 Leute haben es durchsucht

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

性能优化

实例代码如下:

方式一: 
<?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();
?>
Nach dem Login kopieren

时间:13s

对比第一种方法和第二种方法, 因为在PHP中, 最终被执行的是OPCODE, 每行opline都有俩个操作数, 对于操作数来说, 一般有3种类型的存取方式, 临时变量, 变量, 和编译时变量, 这三种变量,其中, 存取最快的是第三种, 编译器变量, 在OpCode执行过程中, 会讲一个变量的加一级引用存储在一个hash

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

教程网址:

欢迎收藏∩_∩但请保留本文链接。

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!