PHP 八大數據類型分類
| 分類 | 類型 | 說明 |
| 標量類型 | integer (整型) | $a = 10; |
| float (浮點型) | $a = 10.3; |
| string (字符串) | $a = "Hello World"; 字符串連接用 . |
| boolean (布爾型) | $a = true; 比較運算結果為布爾值 |
| 復合類型 | array (數組) | 鍵值對集合,支持數字/字符串鍵 |
| object (對象) | 屬性與方法的封裝 |
| 特殊類型 | resource (資源) | 如數據庫連接、文件句柄 |
| NULL | 變量無值或被 unset |
類型測試函數
<?php
var_dump($var); // 詳細輸出類型與值
is_int($var); is_float($var); is_string($var);
is_bool($var); is_array($var); is_object($var);
is_resource($var); is_null($var);
?>
自動類型轉換規則
1. 數學運算觸發轉換
<?php
$num = "123abc";
echo $num + 1; // 124,字符串轉整型,非數字部分被忽略
echo $num . "abc"; // 字符串連接,整型轉字符串
?>
2. 布爾語境下的轉換
以下值轉為 false:0、""、"0"、false、array()、null、未定義變量。其餘均為 true。
強制類型轉換
<?php
(int)$var; // 或 (integer)$var
(float)$var; // 或 (double)$var
(string)$var;
(bool)$var; // 或 (boolean)$var
(array)$var;
(object)$var;
?>
isset() vs empty() 差異
| 函數 | 返回 false 的情況 |
| isset() | 變量不存在、值為 null |
| empty() | 上述情況 + 0、""、"0"、false、array() |
常量定義與使用
<?php
define('HOST', 'localhost');
define('DBNAME', 'test');
echo HOST; // 直接輸出,不能放在雙引號中
echo "Host: " . HOST;
?>
常用運算符速查
- 算術:
+ - * / %、++ --、+= -= *= /= %=
- 比較:
== === != !== < > <= >=
- 邏輯:
&& || !、and or xor
- 三元:
$a = $cond ? $val1 : $val2;
- 字符串連接:
.、.=
實用技巧
header("Content-Type:text/html;charset=utf-8"); 設定頁面編碼,必須在任何輸出前調用。
- 對象方法調用:
$obj->method()。
- 刪除變量:
unset($var)。
- 單引號不解析變量,性能略優;雙引號解析變量,需用
{$var} 包裹複雜變量。