PHP方程输出混乱

时间:2015-10-19 18:46:16

标签: php

$x = 5; echo "$x"; echo "<br>"; echo $x+++$x++; echo "<br>"; echo $x;

上面代码的输出不是“5,12,5”吗? PHP输出“5,11,7”?

为什么呢?我很困惑。

3 个答案:

答案 0 :(得分:1)

对$ x的第一次引用是当它的值仍然是5时(即,在它递增之前),然后第二次引用$ x时它的值是6(即,在它再次递增之前),所以操作是5 + 6,产生11.在此操作之后,$ x的值是7,因为它已经增加了两次。

所以它基本上是

  1. 将5作为加法运算的操作数之一。

  2. 将其提供给加法操作(后增量)后增加x,使其为6。

  3. 将此前增加的x作为第二个操作数提供给加法运算,即6.这使得它为5 + 6,产生11

  4. 最后在加法运算后增加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.