++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中, 最終被執行的是OPCODE, 每行opline
都有倆個操作數, 對於操作數來說, 一般有3種類型的存取方式, 臨時變量, 變量, 和編譯時變量, 這三種變量
其中, 存取最快的是第三種, 編譯器變量, 在OpCode執行過程中, 會講一個變量的加一級引用存儲在一個hash
結構中, 用來加快存取速度.