新聞中心

創(chuàng)新互聯(lián)擁有一支富有激情的企業(yè)網(wǎng)站制作團隊,在互聯(lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)深耕十載,專業(yè)且經(jīng)驗豐富。十載網(wǎng)站優(yōu)化營銷經(jīng)驗,我們已為上1000家中小企業(yè)提供了網(wǎng)站制作、網(wǎng)站建設(shè)解決方案,定制制作,設(shè)計滿意,售后服務(wù)無憂。所有客戶皆提供一年免費網(wǎng)站維護!
php 的運算符在運算中遵循的規(guī)則是:優(yōu)先級高的運算先執(zhí)行,優(yōu)先級低的運算后執(zhí)行,同一優(yōu)先級的運算按照從左到右的順序執(zhí)行。當然也可以像四則運算那樣使用小括號,括號內(nèi)的運算最先執(zhí)行。
下表按照優(yōu)先級從高到低的順序列出了 PHP 中的運算符。同一行中的運算符具有相同優(yōu)先級,此時它們的結(jié)合方向決定其運算順序。
| 優(yōu)先級 | 結(jié)合方向 | 運算符 | 附加信息 |
|---|---|---|---|
| 1 | 無結(jié)合 | clone、new | clone 和 new |
| 2 | 從右向左 | ** | 算術(shù)運算符 |
| 3 | 從右向左 | ++、--、~、(int)、(float)、(string)、(array)、(object)、(bool)、@ | 類型、遞增/遞減、錯誤控制 |
| 4 | 無結(jié)合 | instanceof | 類型 |
| 5 | 從右向左 | ! | 邏輯運算符 |
| 6 | 從左向右 | *、/、% | 算術(shù)運算符 |
| 7 | 從左向右 | +、-、. | 算術(shù)運算符和字符串運算符 |
| 8 | 從左向右 | <<、>> | 位運算符 |
| 9 | 無結(jié)合 | <、<=、>、>= | 比較運算符 |
| 10 | 無結(jié)合 | ==、!=、===、!==、<>、<=> | 比較運算符 |
| 11 | 從左向右 | & | 位運算符和引用 |
| 12 | 從左向右 | ^ | 位運算符 |
| 13 | 從左向右 | | | 位運算符 |
| 14 | 從左向右 | && | 邏輯運算符 |
| 15 | 從左向右 | || | 邏輯運算符 |
| 16 | 從右向左 | ?? | null 合并運算符 |
| 17 | 從左向右 | ? : | 三元運算符 |
| 18 | 從右向左 | =、+=、-=、*=、**=、/=、.=、%=、&=、|=、^=、<<=、>>= | 賦值運算符 |
| 19 | 從左向右 | and | 邏輯運算符 |
| 20 | 從左向右 | xor | 邏輯運算符 |
| 21 | 從左向右 | or | 邏輯運算符 |
對具有相同優(yōu)先級的運算符來說,從左向右的結(jié)合方向意味著將從左向右求值,從右向左結(jié)合方向則反之。對于無結(jié)合方向的則具有相同優(yōu)先級的運算符,該運算符有可能無法與其自身結(jié)合。例如在 PHP 中
1 < 2 > 1 是一個非法語句,而
1 <= 1 == 1 則不是,因為
<= 比
== 優(yōu)先級高。
示例代碼如下:
$a = 5, $b = 5
echo ++$a + $a++;
?>
運行結(jié)果如下,在查看運行結(jié)果之前,大家可以自行計算一下,最后會輸出什么?
12
在我們熟悉了 PHP 運算優(yōu)先級的前提下,最好在書寫運算符的時候,以小括號來標記優(yōu)先級,這樣可以使我們的代碼可讀性更強,也是一個良好的編程習慣。
本文標題:PHP運算符優(yōu)先級一覽表
文章來源:http://fisionsoft.com.cn/article/djgpsoo.html


咨詢
建站咨詢
