国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

php中++i 與 i++ 的區別比較

2024-05-04 21:57:45
字體:
來源:轉載
供稿:網友

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

結構中, 用來加快存取速度.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 柳河县| 黄陵县| 阳曲县| 疏勒县| 南丹县| 青阳县| 河北区| 米脂县| 建瓯市| 芦山县| 锡林浩特市| 和平县| 黄大仙区| 句容市| 乌拉特中旗| 康马县| 邵阳县| 红原县| 苏尼特右旗| 苗栗市| 金沙县| 西充县| 鱼台县| 西城区| 南陵县| 壤塘县| 仁怀市| 任丘市| 闽侯县| 磴口县| 上饶县| 济宁市| 三门峡市| 略阳县| 莆田市| 女性| 建瓯市| 蕉岭县| 云阳县| 潞西市| 九寨沟县|