PHP 運算符完整手冊:算術、賦值、比較、邏輯、位、數組、三元與 Null 合並
運算符是構建表達式的核心。本文系統梳理 PHP 所有運算符類別、優先級與實戰範例。
算術運算符
| 運算符 | 名稱 | 範例 | 結果 |
+ | 加 | 2 + 2 | 4 |
- | 減 | 5 - 2 | 3 |
* | 乘 | 5 * 2 | 10 |
/ | 除 | 15 / 5 | 3 |
% | 取模 | 5 % 2 | 1 |
** | 冪 | 2 ** 3 | 8 |
. | 字符串連接 | "Hi" . "Ha" | "HiHa" |
PHP 7+ 新增 intdiv($x, $y) 整除函數,返回 int。
賦值運算符
| 運算符 | 等價於 |
= | $x = $y |
+= | $x = $x + $y |
-= | $x = $x - $y |
*= | $x = $x * $y |
/= | $x = $x / $y |
%= | $x = $x % $y |
.= | $x = $x . $y |
遞增/遞減運算符
| 運算符 | 名稱 | 效果 |
++$x | 前遞增 | 先加 1 再返回 |
$x++ | 後遞增 | 先返回再加 1 |
--$x | 前遞減 | 先減 1 再返回 |
$x-- | 後遞減 | 先返回再減 1 |
比較運算符
| 運算符 | 名稱 | 說明 |
== | 等於 | 值相等(類型轉換後) |
=== | 全等 | 值相等且類型相同 |
!= / <> | 不等於 | 值不相等 |
!== | 不全等 | 值不相等或類型不同 |
<, >, <=, >= | 大小比較 | 數值/字符串比較 |
<=> | 太空船 | 綜合比較:-1/0/1(PHP 7+) |
邏輯運算符
| 運算符 | 名稱 | 說明 |
and / && | 邏輯與 | 兩真為真(優先級不同) |
or / || | 邏輯或 | 一真為真 |
xor | 邏輯異或 | 僅一真為真 |
! | 邏輯非 | 取反 |
數組運算符
| 運算符 | 名稱 | 說明 |
+ | 聯集 | 鍵不重複時合併,重複保留左側 |
== | 相等 | 鍵值對相同(順序、類型可不同) |
=== | 全等 | 鍵值對相同、順序相同、類型相同 |
!= / <> | 不相等 | |
!== | 不全等 | |
三元運算符
(expr1) ? (expr2) : (expr3) // expr1 為真返回 expr2,否則 expr3
$username = isset($test) ? $test : 'nobody'; // 經典寫法
$username = $test ?: 'nobody'; // PHP 5.3+ 簡寫
Null 合並運算符 (PHP 7+)
$username = $_GET['user'] ?? 'nobody';
// 等價於
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';
太空船運算符範例 (PHP 7+)
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1
echo "a" <=> "b"; // -1
運算符優先級提示
高優先級先結合:++ -- ~ → ** → * / % → + - . → <=> → < <= > >= → == != === !== → & → ^ → | → && → || → ? : → = += -= ... → and → xor → or → ,。善用括號明確意圖。