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

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

性能优化

实例代码如下:

  1. 方式一: 
  2.  
  3. $begin = time(); 
  4. $i = 0; 
  5. while(++$i < 10000) 
  6.   $j = 0; 
  7.   while(++$j < 10000) 
  8.     ; 
  9.   ; 
  10. $end = time(); 
  11.  
  12. 时间 : 16s 
  13.  
  14. 方式二: 
  15.  
  16. $begin = time(); 
  17. $i = 0; 
  18. while($i < 10000) 
  19.   $j = 0; 
  20.   while($j < 10000) 
  21.     ++$j
  22.   ++$i
  23. $end = time(); 
  24.  
  25. 时间:13s 
  26.  
  27. 方式三: 
  28.  
  29. $begin = time(); 
  30. $i = 0; 
  31. while($i < 10000) 
  32.   $j = 0; 
  33.   while($j < 10000) 
  34.     $j++; 
  35.   $i++; 
  36. $end = time(); 
  37.  
  38. 时间:15s 
  39.  
  40. 方式四: 
  41.  
  42. $begin = time(); 
  43. $i = 0; 
  44. while($i++ < 10000) 
  45.   $j = 0; 
  46.   while($j++ < 10000) 
  47.     ; 
  48.   ; 
  49. $end = time(); 

时间:13s

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

结构中, 用来加快存取速度.
波比源码 – 精品源码模版分享 | www.bobi11.com
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 本站源码并不保证全部能正常使用,仅供有技术基础的人学习研究,请谨慎下载
8. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

波比源码 » php中++i 与 i++ 的区别比较

发表评论

Hi, 如果你对这款模板有疑问,可以跟我联系哦!

联系站长
赞助VIP 享更多特权,建议使用 QQ 登录
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡