-
$i++
先将$i值赋给变量$a(也就是 $a=$i),然后$i值加1(也就是 $i=$i+1) 相当于 $a=$i;$i=$i+1;
-
++$i
先将$i值加1(也就是 $i=$i+1),然后$i值赋给变量$a(也就是 $a=$i) 相当于 $i=$i+1;$a=$i;
- ++$i 与 $i++ 单独使用时,相当于 $i=$i+1;
-
$i+$i++
由于++的优先级大于+所以先执行++,但是$i++ 是先给值后执行自加操作。也就是说式子变成了
$i+1
同时$i被执行++操作,所以此时$i=2,式子$i+$i++ 变为:2+1。所以式子$i+$i++ 的值为3
$i=1;
$a=$i++;
$i+$a // 2+1=3
-
$i+$i+$i++
首先我们必须明白一件事情,就是优先级只对局部有效什么叫做局部有效呢?
比如:$a+$b+$c*$d
虽然在该式子中*乘法优先级最高,但是并不影响$a+$b按照从左到右的顺序先执行加法。
同样的虽然在式子 $i+$i+$i++ 中++优先级最高但是最前面的两个$i可以先执行加法,所以式子就变成了
2+$i++ 所以等于3
执行顺序问题