運算子是程式語言中操作資料的核心符號。PHP 將運算子依「操作數個數」分為三大類:一元、二元、三元運算子。本文將透過實例詳細說明各類型的行為差異與常見陷阱。
常見範例:邏輯非 !、遞增 ++、遞減 --、錯誤抑制 @。
$i = 2;
$a = ++$i; // 先加 1 再賦值:$i=3, $a=3
$i = 2;
$a = $i++; // 先賦值再加 1:$i=3, $a=2
++$i; // 等同 $i = $i + 1
$i++; // 等同 $i = $i + 1
// 但若指派給新變數,執行順序會影響結果
這是最常見的類型,包含:
+、-、*、/、%==、===、!=、<、>&&、||、!=、+=、-= 等$a = 1 + 2; // 3
$b = 3 - 1; // 2
語法:(expr1) ? (expr2) : (expr3)
意義:若 expr1 為真,回傳 expr2;否則回傳 expr3。適合用於「根據條件選擇值」,而非控制程式流程。
$page = !empty($_GET['page']) ? $_GET['page'] : 1;
$result = ($score >= 90) ? '優' : (($score >= 60) ? '及格' : '不及格');
| 類型 | 操作數個數 | 常見範例 | 用途 |
|---|---|---|---|
| 一元 | 1 | ++$i, !$flag | 狀態切換、數值微調 |
| 二元 | 2 | $a + $b, $x == $y | 運算、比較、邏輯判斷 |
| 三元 | 3 | $cond ? $a : $b | 條件賦值、簡化 if-else |
if/else 增加可讀性。++$i,效能略佳且語意明確。=== 可避免型別轉換導致的非預期結果。