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

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

$a = 1;

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

這道題不是很難,顯然在PHP中 ++ 的優先級比 + 高,所以先執行 $a++,這時 $a的值爲2

再看一題:

$a = 1;

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

這時 $b 的值應該是多少呢?答案是:3

爲什麼還是3呢?不是 ++ 的優先級比 + 高嗎?先執行 a++,a++ 後,a的值應該是2,結果是5纔對啊.其實這是正確答案是 3,一開始自己也認爲應該是5.

解釋:運算符是從左邊往右結合的,上面的表達式相當於

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

根據左結合的原則:

//先計算 $a+$a 

$b = 2 + $a++; 

//這時就要比較 + 和 ++ 的運算符優先級了 

b=2+1;//b = 2 + 1; //這時a = 2

這是都是蛋疼的PHP筆試題,在實際項目代碼中應該使用括號來避免這些問題的出現.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章