$x = 5; echo "$x"; echo "<br>"; echo $x+++$x++; echo "<br>"; echo $x;
上面代码的输出不是“5,12,5”吗? PHP输出“5,11,7”?
为什么呢?我很困惑。
答案 0 :(得分:1)
对$ x的第一次引用是当它的值仍然是5时(即,在它递增之前),然后第二次引用$ x时它的值是6(即,在它再次递增之前),所以操作是5 + 6,产生11.在此操作之后,$ x的值是7,因为它已经增加了两次。
所以它基本上是
将5作为加法运算的操作数之一。
将其提供给加法操作(后增量)后增加x,使其为6。
将此前增加的x作为第二个操作数提供给加法运算,即6.这使得它为5 + 6,产生11
最后在加法运算后增加x,使其成为
答案 1 :(得分:1)
参见评论中的注释
$x = 5;
echo $x . PHP_EOL;
// now x=5
echo ++$x + $x . PHP_EOL;
// left side of the operation makes x=6 then the right side adds x to it, meaning 6+6
echo ++$x . PHP_EOL;
// now x=7
同时检查此What's the difference between ++$i and $i++ in PHP?
了解前增量和后增量。
答案 2 :(得分:0)
$ x ++表示x的当前值为5,在此之后,x将为6。
对于第二个x,x = 6,然后紧接着,x = 7.