php $i++值输出问题

为什么输出的值分别是5,11,7,1,5
代码如下

$x = 5;
echo $x."\n\n";  

echo $x+++$x++."\n\n";  

echo $x."\n\n";  
 
echo $x---$x--."\n\n";  
 
echo $x."\n\n"; 

第一个输出5我可以理解,但是到了$+++$++;部分之后的值输出不太理解

希望大神可以给详细的解答

阅读 1.9k
2 个回答

$x++ 是先赋值,后自增

此时$x=5

式子 $x++ + $x++

运算按由左到右的顺序执行,式子得到 $x 的赋值

5 + $x++

赋值之后,$x = $x + 1

运算继续执行,式子得到第二个$x的赋值,此时$x的值已经被第一次的$x++改变

所以式子等同于 5 + 6

$x再次自增,于是$x=7

下面的同理哈

转换一下你就知道了

$a = $x++;
echo $a."\n\n";
$b = $x++;
echo $b."\n\n";
echo $a+$b."\n\n";  

其它同理

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题