spe*_*orx 2 php variables increment
几天前,我正在接受采访,我有一项任务,对我来说,未知使用增量.它完全是这样的:
echo $x+++$x++;
Run Code Online (Sandbox Code Playgroud)
我以前从未见过这样的事情,我正在试图弄清楚它做了什么,而且我一无所知.为了检查它我写了这样的代码示例:
<?php
$x = 7;
echo $x. "<br>";
echo $x+++$x++;
?>
Run Code Online (Sandbox Code Playgroud)
第一行打印出应该打印的内容:7.
但第二行打印出来15.为什么?这件事怎么样?这是什么意思?
它只是我还是类似于变量变量的东西,这是来自采访者的有趣任务,但在现实中没用?
如果你稍微分解它可能会更容易.
PHP识别$x++为增量.之后的额外+内容被认为是一个补充.有
$x+++$x++
Run Code Online (Sandbox Code Playgroud)
等于
$x++ + $x++
Run Code Online (Sandbox Code Playgroud)
这是一个后增量,这意味着您返回值 - 然后将值增加1.
它会一步一步地执行
$x = 7$++发生,返回它在递增之前的值,7,然后递增$x1$x = 7被退回,但是,$x现在是8(由于后增)$x增加与它的增量之前的值,$x增量后(因为7是从第一个返回$x++,而是$x很自然地递增,第一个增量后$x++,$x成为8 -这就是现在的第二个值$x之前最后一篇文章 - 增量发生)$x最后一次增加,制作它$x = 9(这在某种程度上是不相关的,因为你$x之后没有使用)查看运算符优先级和递增/递减运算符的手册.