PHP 支援兩大數字型別:
8, -42, 10980843985, 0x1A (十六進位), 0755 (八進位), 0b1010 (二進位)3.14, -4.2398508, 4.4e2 (科學標記法 = 440), 1.5E-3 (= 0.0015)重要:數字**不可加引號** (否則成字串)、**不可用逗號分隔千位** (如 20,943 錯誤)。
| 函數 | 說明 | 範例 |
|---|---|---|
| round($val, $precision) | 四捨五入,可指定小數位 | round(3.14159, 2) → 3.14 |
| floor($val) | 無條件捨去 (向下取整) | floor(3.9) → 3 |
| ceil($val) | 無條件進位 (向上取整) | ceil(3.1) → 4 |
| number_format($val, $decimals, $decPoint, $thousandsSep) | 格式化:千分位、小數點、小數位 | number_format(1234.56, 2, '.', ',') → '1,234.56' |
| abs($val) | 絕對值 | abs(-5) → 5 |
| min()/max() | 最小/最大值 | max(1,5,3) → 5 |
| mt_rand($min, $max) | 產生較佳隨機整數 (Mersenne Twister) | mt_rand(1, 100) |
| random_int($min, $max) | **加密安全**隨機整數 (PHP 7+) | random_int(1, 100) |
<!DOCTYPE html> <html><body> <?php $quantity = 30; // 購買數量 $price = 119.95; // 單價 $taxRate = 0.05; // 5% 稅率 // 計算總額 $total = $quantity * $price; $total += $total * $taxRate; // 等同 $total = $total + ($total * $taxRate) // 格式化輸出 $total = number_format($total, 2, '.', ','); echo "<p>您購買了 <b>$quantity</b> 件商品,單價 <b>\$$price</b>。含稅總額為 <b>\$$total</b>.</p>"; ?> </body></html>
| 運算子 | 等同於 | 範例 |
|---|---|---|
| += | $a = $a + $b | $total += 100; |
| -= | $a = $a - $b | $total -= $discount; |
| *= | $a = $a * $b | $price *= 1.05; |
| /= | $a = $a / $b | $avg /= $count; |
| %= | $a = $a % $b | $remainder %= 10; |
| **= | $a = $a ** $b (冪次,PHP 5.6+) | $square **= 2; |
** (右結合)++ -- ~ (int) (float) (string) @ (單元運算子,右結合)* / % (左結合)+ - . (左結合)< <= > >= instanceof (不結合)== != === !== <=> (不結合)& (左結合)^ (左結合)| (左結合)&& (左結合)|| (左結合)?? (左結合,PHP 7+)? : (三元運算子,右結合)= += -= *= /= %= **= .= (右結合)and (左結合)xor (左結合)or (左結合), (左結合)建議:複雜表達式**加括號**明確優先級,如 ($a + $b) * $c。
| 運算子 | 名稱 | 範例 | 結果 | 備註 |
|---|---|---|---|---|
| == | 相等 | 0 == '0' | true | 型別轉換後比較 |
| === | 全等 | 0 === '0' | false | **值與型別皆相同** |
| != / <> | 不相等 | 1 != '1' | false | 型別轉換後比較 |
| !== | 不全等 | 1 !== '1' | true | 值或型別不同 |
| <=> | 太空船運算子 | 1 <=> 2 | -1 | PHP 7+,回傳 -1/0/1 |
$a && $b / $a and $b:邏輯 AND (&& 優先級較高)$a || $b / $a or $b:邏輯 OR (|| 優先級較高)!$a:邏輯 NOT$a xor $b:邏輯 XOR (其中一個 true 才為 true)// 三元運算子 $status = ($age >= 18) ? '成年' : '未成年'; // Null 合併運算子 (PHP 7+):左側存在且非 null 即回傳 $name = $_GET['name'] ?? '訪客'; // 串聯 $config = $userConfig ?? $siteConfig ?? $defaultConfig;
@$result = @(57 / 0); // 抑制「除以零」警告,$result 為 false // 生產環境**不建議**使用 @,應預先檢查條件或用 try/catch
number_format(),四捨五入用 round()=== / !==,避免型別轉換陷阱mt_rand(),安全用途**必須**用 random_int()