PHP 是弱型別語言,變數型別由上下文自動推斷。理解型別轉換規則能避免邏輯錯誤,寫出更健壯的程式碼。
運算子會根據操作數自動轉型:
$a = "10" + 5; // 字串 "10" 自動轉為整數 10,結果 15 (int)
$b = "3.14" + 1; // 字串轉為浮點數,結果 4.14 (float)
$c = true + 1; // 布林 true 轉為 1,結果 2 (int)
規則:若任一操作數為 float,全部視為 float;否則視為 integer。
使用括號語法明確指定目標型別:
| 語法 | 目標型別 | 別名 |
|---|---|---|
(int) / (integer) | 整數 | |
(bool) / (boolean) | 布林值 | |
(float) / (double) / (real) | 浮點數 | |
(string) | 字串 | |
(array) | 陣列 | |
(object) | 物件 | |
(unset) | NULL | PHP 5+ |
(binary) | 二進位字串 | PHP 6+,前綴 b |
intval($var) / (int)$var → 整數floatval($var) / (float)$var → 浮點數strval($var) / (string)$var → 字串settype($var, $type) → 直接修改變數型別,成功回傳 trueintval("42") // 42
intval("3.14") // 3
intval("abc") // 0
intval("10px") // 10 (從開頭解析數字)
floatval("3.14px") // 3.14
=== 嚴格比較,區分 0、""、null、falseintval 或 floatval 確保型別正確