小编Chu*_*nga的帖子

后增量行为怪异

我已将问题缩小到此代码

$a = 3;
$a = 3 * $a++;  
echo $a; //9

$a = 3;
$a = $a * $a++;  
echo $a; //12
Run Code Online (Sandbox Code Playgroud)

这是第一次操作的 VLD 操作码

compiled vars:  !0 = $a
line     #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   2     0  E >   ASSIGN                                                   !0, 3
   3     1        POST_INC                                         ~2      !0
         2        MUL                                              ~3      ~2, 3
         3        ASSIGN                                                   !0, ~3
   4     4        ECHO                                                     !0
   5     5      > RETURN                                                   1
Run Code Online (Sandbox Code Playgroud)

用于第二次操作 ($a * $a++)

compiled vars:  !0 = …
Run Code Online (Sandbox Code Playgroud)

php opcode

5
推荐指数
1
解决办法
102
查看次数

标签 统计

opcode ×1

php ×1