PHP方程输出混乱 $x=5;回声“$x”;回声“”;echo$x++$x++;回声“”;echo$x;
上面代码的输出不是“5,12,5”吗?PHP输出“5,11,7”PHP方程输出混乱 $x=5;回声“$x”;回声“”;echo$x++$x++;回声“”;echo$x;,php,Php,上面代码的输出不是“5,12,5”吗?PHP输出“5,11,7” 为什么??我很困惑 对$x的第一次引用是在其值仍然为5时(即,在其递增之前),而对$x的第二次引用是在其值为6时(即,在其再次递增之前),因此操作是5+6,这将产生11。执行此操作后,$x的值为7,因为它已递增两次 所以基本上是 提供5作为加法运算的操作数之一 在将其提供给加法运算(增量后)后增加x,使其为6 将上一个递增的x作为加法运算的第二个操作数,即6。所以它是5+6,得到11 最后,在加法运算后增加x,使其为7 见注释中的
为什么??我很困惑 对$x的第一次引用是在其值仍然为5时(即,在其递增之前),而对$x的第二次引用是在其值为6时(即,在其再次递增之前),因此操作是5+6,这将产生11。执行此操作后,$x的值为7,因为它已递增两次 所以基本上是
$x = 5; echo "$x"; echo "<br>"; echo $x+++$x++; echo "<br>"; echo $x;
同时检查此项了解增量之前和增量之后的情况。$x++表示x的当前值为5,紧接着,x将为6
对于第二个x,x=6,然后紧接着,x=7。
$x++$x++
后增量,但是$x的原始值是5。所以,当调用$x时,它不是总是5吗?对不起,我匆忙写道。考虑到操作优先级,正确的做法是:echo$x(5)++(6)+$x(6+5=11)++(7)
代码>立即阅读@Alan machadoIt,它不是+++$x+$x。他的是$x++++$x++,它打印了11条。你是对的,在OP的形式中,结果是11条。正如我写的,给12。这只是一个关于如何使用递增的例子。他解释了优先级的逻辑。但它仍然不能解决op对$x++$x的疑问++
$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