php中的$detail,PHP中$x+++$x+++相关问题

一、概述

今天在看一个面试题目的时候,如下:$x = 5;

echo $x+++$x++;

输出:11

是5+6呢?还是6+5呢?

正确答案是从5+6,why?

$x+++$x++,即($x++)+ ($x++)

因为程序是从左往右开始计算,++在变量后,便是先计算后赋值。

所以上面的程序等价于

5+($x++)

此时,$x变量的指已变为了6

因此: $x+++$x++ => 5+6 => 11

二、案例

1、案例1$x = 5;

echo $x+++$x+++$x--;

答案:5+6+7 => 18

解析:首先我们需要了解“+”和“++”运算符的优先级,如下:

0dc7067d6878538deb506426676c5467.png

可以看出,是先计算“++”, 然后在计算“+”,所以,上面计算等价于:$x = 5;

echo ($x++)+($x++)+($x--);

其次,计算顺序是从左往右。

所以:第一个$x++,先计算后赋值加1,上面计算等价:5+($x++)+($x--)

此时,$x已为6了,接着第二个$x++,先计算后赋值加1,上面计算等价于:5+6+($x--)

此时,$x已为7了,接着第三个$x--,先计算后赋值减11,上面计算等价于:5+6+7

此时$x的值,为6

所以:$x+++$x+++$x-- = 18

总结一下:1、运算符的优先级;2、计算方式(从左往右);3、++在变量后,表示先计算后加1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值