在阅读一些关于PHP的问题时。我读了一个问题,它的答案如下:
下面代码的输出是什么,为什么?
$x = 5;
echo $x;
echo "<br />";
echo $x+++$x++;
echo "<br />";
echo $x;
echo "<br />";
echo $x---$x--;
echo "<br />";
echo $x;
Answer →
5
11
7
1
5
在这里,我对$x+++和$x---以及它的工作原理以及表达式$x+++$x++的确切计算方式感到困惑。谁能解释一下。还有为什么只是"echo $x+++"不起作用并给出错误。
Okey 让我们看看:
现在$x = 7
如果我们从这一行开始:echo $x---$x--;
那么会发生什么呢???
($x--) - ($x--) => 7 - 6 = 1
第一个$x--
对第一个值没有影响,但$x
的值会少一个,如果我们在第二个值中$x--
,那么我们得到的变量值较小,即6
,所以现在 firs 值是 7
,第二个值是 6
, 因为如果第二个值变小,那么第二部分的值将小于一个,这将影响下一行:echo $x
。所以最后一个值是 5
.
数据分析:
$x = 5;
echo $x; // 5, Nothing changed.
echo "<br />";
echo $x+++$x++; // 5 + 6 = 11, increment of $x two times.
echo "<br />";
echo $x; // 7, cause last increment.
echo "<br />";
echo $x---$x--; // 7 - 6 = 1, decrements two times.
echo "<br />";
echo $x; // 5, cause last decrements.
echo $x+++$x++;
这工作为
echo ($x++)+($x++);
echo $x+++;
是语法错误;增量你可以通过x++
而不是x+++
来执行。
首先,++
是一个增量运算符。运算符+++
不存在。
但是,在您的语法中,代码实际上是按如下方式读取的:
$x = 5;
echo $x;
echo "<br />";
echo ($x++) + ($x++); // 6 + 7 (increment $x by 1, makes it 6, then again to make it 7)
echo "<br />";
echo $x; // $x is 7 here
echo "<br />";
echo ($x--) - ($x--); // 6 - 5 (decrement $x by 1, makes it 6, then again makes it 5
echo "<br />";
echo $x; // $x is 5
尽管您似乎想执行 $x+2 而不是 $x++,但这仍按预期工作;
这是前/后递增/递减的概念。 如果我们使用后增量 MENAS首先 ($x++)
首先会发生什么,它会执行应用于该变量的表达式,然后将该变量的值递增 1,如下例所示。
<?php
$x = 5;
echo $x++;
echo "<br />";
echo $x;
?>
输出
5
6
第二个是预增量,其中首先发生的事情是递增变量的值,然后执行适用于该变量的表达式,如下例所示。
<?php
$x = 5;
echo $x+++$x;
echo "<br />";
echo $x;
?>
输出
11
6
这里在预递增中首先发生的事情,它会在$x
中添加(+1)
然后执行表达式的值。 前/递减的工作原理相同有关递增/递减的更多信息
我希望这对你有帮助。
echo $x+++$x++;在这种情况下,方程变得像($x)+(++$x)++;其中 $x=5 并且按照前增量 ++$x变成 6 只是因为后递增在语句后生效,所以下一步中的 5+6=11回显"
";回声$x;11然后$x =7,因为职位增加回显"
";回声$x---$x--;这里和上面一样($x)-(--$x)--(7)-(6)--如果你回显$x那么它必须是它的初始值,即 5
$x = 5;
echo $x;
echo "<br />";
echo $x+++$x++;
echo "<br />";
echo $x;
echo "<br />";
echo $x---$x--;
echo "<br />";
echo $x;
结果:回声$x;= 5 回声 ($x++)+($x++);= 5 + 6 = 11 回声$x;= 7 对于使用的增量运算符回显$x---$x--;= 7 - 6 = 1//原因 递减运算符回波$x;= 5//最后递减