首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 讀書筆記(4):運算符分類與優先級完整表

     編輯:PHP 相關知識

什麼是運算符

運算符是用於對變量和值執行操作的符號。PHP 按操作數數量分為一元、二元、三元運算符;按功能分為算術、賦值、比較、邏輯、字符串、數組、類型、位運算等類別。

運算符分類總表

類別運算符示例說明
算術+$a + $b加
-$a - $b減
*$a * $b乘
/$a / $b除(浮點)
%$a % $b取模
**$a ** $b冪(PHP 5.6+)
賦值=$a = $b賦值
+= -= *= /= %= **=$a += $b複合賦值
.=$a .= $b字符串連接賦值
比較==$a == $b值相等(類型轉換)
===$a === $b全等(值+類型)
!= <> $a != $b不等
!==$a !== $b不全等
< <= > >=$a < $b大小比較
<=>$a <=> $b太空船運算符(PHP 7+,返回 -1/0/1)
邏輯and / &&$a && $b邏輯與(&& 優先級高)
or / ||$a || $b邏輯或
xor$a xor $b邏輯異或
! / not!$a邏輯非
字符串.$a . $b連接
.=$a .= $b連接賦值
數組+$a + $b聯合(鍵不覆蓋)
==$a == $b鍵值對相等
===$a === $b鍵值對全等(順序+類型)
類型instanceof$a instanceof Class對象類型檢查
?:$a = $b ?: $cElvis 運算符(PHP 5.3+)
位運算& | ^ ~ << >>$a & $b按位與/或/異或/取反/左移/右移
??$a ?? $b空合並運算符(PHP 7+,$a 存在且非 null 取 $a,否則 $b)

運算符優先級(高到低)

1. clone new                          // 實例化
2. [                                  // 數組下標
3. **                                 // 冪
4. ++ -- ~ (int) (float) (string) ... // 一元運算符/類型轉換
5. instanceof                         // 類型檢查
6. * / %                              // 乘除模
7. + - .                              // 加減/字符串連接
8. << >>                              // 位移
9. < <= > >= <=>                      // 比較
10. == != === !== <>                  // 相等/不等
11. &                                 // 按位與
12. ^                                 // 按位異或
13. |                                 // 按位或
14. &&                                // 邏輯與
15. ||                                // 邏輯或
16. ??                                // 空合並
17. ? :                               // 三元運算符(右結合)
18. = += -= *= /= %= **= .= &= |= ... // 賦值(右結合)
19. and                               // 邏輯與(極低優先級)
20. xor                               // 邏輯異或
21. or                                // 邏輯或(極低優先級)

常見優先級陷阱

代碼實際解析預期修正
$a = $b ?: $c = $d$a = ($b ?: ($c = $d))($a = $b) ?: ($c = $d)加括號
if ($a = $b && $c)if ($a = ($b && $c))if (($a = $b) && $c)加括號
echo 'sum: ' . $a + $b(echo 'sum: ' . $a) + $becho 'sum: ' . ($a + $b)加括號
$a ?? $b ?? $c($a ?? $b) ?? $c左結合,正確無需修正

結語

熟練掌握運算符分類、優先級、結合性,是寫出無 Bug 表達式的基礎。**原則:不確定時加括號**,代碼可讀性優於炫技。PHP 7+ 引入 <=>、?? 等現代運算符,大幅簡化了比較與空值處理邏輯,建議優先使用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved