PHP 提供豐富的算術運算符支援數值計算,掌握其優先級、結合性與邊界行為對編寫正確程式至關重要。
運算符完整列表
| 運算符 | 名稱 | 範例 | 結果 |
+ | 加法 | $a + $b | 和 |
- | 減法 | $a - $b | 差 |
* | 乘法 | $a * $b | 積 |
/ | 除法 | $a / $b | 商(浮點數) |
% | 取模 | $a % $b | 餘數 |
++ | 自增 | ++$a / $a++ | 加 1 |
-- | 自減 | --$a / $a-- | 減 1 |
+= | 加後賦值 | $a += $b | $a = $a + $b |
-= | 減後賦值 | $a -= $b | $a = $a - $b |
*= | 乘後賦值 | $a *= $b | $a = $a * $b |
/= | 除後賦值 | $a /= $b | $a = $a / $b |
%= | 模後賦值 | $a %= $b | $a = $a % $b |
實戰範例:判斷整除
<?php
$a = 100; $b = 3;
$c = $a % $b;
if ($c) {
echo "不能整除!"; // 餘數非 0
} else {
echo "能整除!";
}
?>
自增/自減陷阱:前綴 vs 後綴
| 形式 | 名稱 | 操作順序 | 回傳值 |
++$a | 前增 | 先加 1,再回傳 | 新值 |
$a++ | 後增 | 先回傳,再加 1 | 舊值 |
--$a | 前減 | 先減 1,再回傳 | 新值 |
$a-- | 後減 | 先回傳,再減 1 | 舊值 |
程式碼驗證
<?php
// 後增:先用後加
$a = 90; $b = $a++; // 等價 $b=$a; $a=$a+1;
echo $b; // 90
echo "<br />$a"; // 91
// 前增:先加後用
$a = 90; $b = ++$a; // 等價 $a=$a+1; $b=$a;
echo $b; // 91
echo "<br />$a"; // 91
?>
複合賦值運算符
<?php
$a = 90;
$a += 90; // $a = $a + 90
echo $a; // 180
?>
注意事項
- 除法
/ 永遠回傳浮點數,整數除法用 intdiv() (PHP 7+)
- 取模
% 與被除數符號相同:-5 % 3 = -2
- 避免在同一表達式多次修改同一變量(未定義行為)
- 浮點數精度問題:
0.1 + 0.2 != 0.3,金額計算用 BCMath 或整數分單位