Home >php教程 >php手册 >PHP面试题:$a+$a++ 与 $a+$a+$a++

PHP面试题:$a+$a++ 与 $a+$a+$a++

WBOY
WBOYOriginal
2016-05-25 16:46:052480browse

$a+$a++ 与 $a+$a+$a++的结果是多少,这个对于很多程序员来讲几乎是都会做错的,那么$a+$a++ 与 $a+$a+$a++最后会是什么结果?下面我们一起来看看吧.

让我们来先看一道题:

$a = 1;

$b = $a + $a++; //结果:$a=2,$b=3

这道题不是很难,显然在PHP中 ++ 的优先级比 + 高,所以先执行 $a++,这时 $a的值为2

再看一题:

$a = 1;

$b = $a + $a + $a++;

这时 $b 的值应该是多少呢?答案是:3

为什么还是3呢?不是 ++ 的优先级比 + 高吗?先执行 $a++ 后,$a的值应该是2,结果是5才对啊.其实这是正确答案是 3,一开始自己也认为应该是5.

解释:运算符是从左边往右结合的,上面的表达式相当于

$ = ($a+$a) + $a++

根据左结合的原则:

//先计算 $a+$a 
$b = 2 + $a++; 
//这时就要比较 + 和 ++ 的运算符优先级了 
$b = 2 + 1; //这时$a = 2

这是都是蛋疼的PHP笔试题,在实际项目代码中应该使用括号来避免这些问题的出现.


               
               

文章网址:

随意转载^^但请附上教程地址。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn