++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 賦給新變量.
性能優化
實例代碼如下:
時間:13s
對比第一種方法和第二種方法, 因為在PHP中, 最終被執行的是OPCODE, 每行opline都有倆個操作數, 對于操作數來說, 一般有3種類型的存取方式, 臨時變量, 變量, 和編譯時變量, 這三種變量,其中, 存取最快的是第三種, 編譯器變量, 在OpCode執行過程中, 會講一個變量的加一級引用存儲在一個hash