-
博文分类专栏
- Jquery基础教程
-
- 文章:(15)篇
- 阅读:46549
- shell命令
-
- 文章:(42)篇
- 阅读:154227
- Git教程
-
- 文章:(36)篇
- 阅读:234843
- leetCode刷题
-
- 文章:(76)篇
- 阅读:131787
-
PHP中$x+++$x+++相关问题2018-03-23 11:03 阅读(7020) 评论(0)
一、概述
今天在看一个面试题目的时候,如下:
$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
解析:首先我们需要了解“+”和“++”运算符的优先级,如下:
可以看出,是先计算“++”, 然后在计算“+”,所以,上面计算等价于:
$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