開篇先來一張php官網給出的運算符優先級的圖片
![PHP面試常考易錯題之運算符優先級](http://p2.ttnews.xyz/loading.gif)
living example one
$a = 1;
echo $a+$a++;
//output 3
考點:
1)運算符優先級以及短路的問題
分析:
1)從開篇頭部圖片可以看出 "++" 優先級是最高的,那麼他將先運算,但是"++"又是先用該字符值後累計
2)當運算到$a的時候已經變成2,由於"++"已經執行了
3)2+1 最後輸出3
living example two
$x = 5;
echo $x;
echo $x+++$x++;
echo $x;
echo $x---$x--;
echo $x;
實際運行結果是
5 11 7 1 5
考點:
1)運算符優先級問題
分析:
1)$x++ 和 $x--這個問題其實非常容易遇見,我們只需記住$x++使用最近的值,然後才自增。
2)運算符的優先級,++ 是明顯高於 +,因此先執行++ 再執行 + 。關於運算符的優先級,有
的時候我們真的可以通過括號來讓我們的程序更加讓人直觀的瞭解,畢竟代碼它不光是用於執行
的,有的時候或許團隊的可讀性也是提高效率的一種。
living example three
$bool = true && false;
var_dump($bool);
//output:false
考點:
1)算術運算符優先級的問題
分析:
1)&& > = 運算符,依次執行順序為&& 之後是= ,因此輸出false
living example four
$a = 0;
$b = 0;
if( $a=3>0 || $b=3>0 ){
$a++;
$b++;
echo $a.'\n';
echo $b.'\n';
}
//output: 1 1
考點:
1)算術運算符優先級的問題
分析:
1)運算符優先級 > > || > = ,因此就會出現3>0,那麼一個為true,整個條件都為true,將進入if條件
閱讀更多 思夢PHP 的文章