萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> PHP面試題:$a+$a++ 與 $a+$a+$a++

PHP面試題:$a+$a++ 與 $a+$a+$a++

$a+$a++ 與 $a+$a+$a++的結果是多少,這個對於很多程序員來講幾乎是都會做錯的,那麼$a+$a++ 與 $a+$a+$a++最後會是什麼結果?下面我們一起來看看吧。

讓我們來先看一道題:

<?php

$a = 1;
$b = $a + $a++; //結果:$a=2,$b=3
這道題不是很難,顯然在PHP中 ++ 的優先級比 + 高,所以先執行 $a++,這時 $a的值為2
再看一題:

<?php

$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筆試題,在實際項目代碼中應該使用括號來避免這些問題的出現。

copyright © 萬盛學電腦網 all rights reserved