a++ 與 a+a+$a++ 與 a+$a++最後會是什麼結果?下面我們一起來看看吧.
讓我們來先看一道題:
$a = 1;
$b = $a + a=2,$b=3
這道題不是很難,顯然在PHP中 ++ 的優先級比 + 高,所以先執行 $a++,這時 $a的值爲2
再看一題:
$a = 1;
$b = $a + $a + $a++;
這時 $b 的值應該是多少呢?答案是:3
爲什麼還是3呢?不是 ++ 的優先級比 + 高嗎?先執行 a的值應該是2,結果是5纔對啊.其實這是正確答案是 3,一開始自己也認爲應該是5.
解釋:運算符是從左邊往右結合的,上面的表達式相當於
$ = (a) + $a++
根據左結合的原則:
//先計算 $a+$a
$b = 2 + $a++;
//這時就要比較 + 和 ++ 的運算符優先級了
a = 2
這是都是蛋疼的PHP筆試題,在實際項目代碼中應該使用括號來避免這些問題的出現.