null(大小寫不敏感)。null、未賦值、unset() 後。(unset)$var 或 settype($var, 'null') 可將變數轉為 NULL(PHP 5+)。PHP 為動態弱型別語言,變數型別由上下文決定:
<?php
$var = "10"; // String
$var = 10; // Integer
$var = 10.5; // Float
// 算術運算觸發轉換
echo "5" + "3"; // 8 (Integer) - 字串轉數字相加
echo "5" . "3"; // "53" (String) - 句點為串接
echo 5 + 3.2; // 8.2 (Float) - 整數提升為浮點數
echo true + 1; // 2 (Integer) - Boolean 轉整數
+ 任一操作數為 Float → 全部視為 Float,否則視為 Integer。&&, ||, !)回傳 Boolean。.)強制轉 String。| 語法 | 目標型別 | 別名 |
|---|---|---|
(int) / (integer) | Integer | |
(bool) / (boolean) | Boolean | |
(float) / (double) / (real) | Float | |
(string) | String | |
(array) | Array | |
(object) | Object | |
(binary) | Binary String | PHP 6 / 5.2.1+ 加 b 前綴 |
(unset) | NULL | PHP 5+ |
<?php
$val = "123abc";
echo (int)$val; // 123 (截取前導數字)
echo (float)$val; // 123.0
echo (bool)$val; // true (非空字串)
echo (array)$val; // ["123abc"] (單元素陣列)
echo (object)$val; // stdClass Object (["scalar"] => "123abc")
視為 false:false, 0, 0.0, "", "0", [], null, 空 SimpleXML 物件。其餘皆為 true。
false→0, true→1。3.9→3, -2.7→-2)。超出範圍結果未定義(無警告)。1.2e3),無數字則 0.0。true→"1", false→""。"Array"(觸發 Notice),無法顯示內容,用 print_r/var_dump。"Object",PHP 5+ 呼叫 __toString(),無則錯誤。"Resource id #1"。""。| 函數 | 用途 |
|---|---|
settype($var, $type) | 就地轉換變數型別 |
gettype($var) | 取得型別字串 |
intval($var) / floatval() / strval() | 轉換並回傳新值 |
is_int() / is_float() / is_string() / is_bool() / is_array() / is_object() / is_null() / is_numeric() | 型別檢查 |
filter_var()、intval()),業務邏輯使用強型別。declare(strict_types=1) + 函數參數/回傳型別提示,編譯期捕獲型別錯誤。if ($str) 判斷非空字串),改用 if ($str !== '') 明確語意。==,用 abs($a-$b) < EPSILON 或 BCMath/GMP 高精度庫。serialize()/unserialize() 或 JSON,跨語言首選 JSON。