| 變量 | 用途 | 關鍵鍵名示例 |
|---|---|---|
$_SERVER | 服務器/執行環境信息 | REQUEST_URI, HTTP_HOST, REMOTE_ADDR, REQUEST_METHOD, SERVER_PROTOCOL |
$_GET/$_POST | HTTP 參數 | 自動解碼,filter_input() 更安全 |
$_COOKIE | Cookie | 只讀,寫入用 setcookie() |
$_SESSION | 會話數據 | 需 session_start() |
$_FILES | 上傳文件 | ['name','type','tmp_name','error','size'] |
$_ENV | 環境變量 | 配合 vlucas/phpdotenv 管理 .env |
$GLOBALS | 全局作用域引用 | 慎用,破壞封裝 |
| 函數 | 用途 | 陷阱/提示 |
|---|---|---|
strlen() | 字節長度 | 多字節字符用 mb_strlen() |
substr() | 截取 | 多字節用 mb_substr(),負長度從末尾 |
strpos()/stripos() | 查找位置 | 嚴格判斷 !== false,str_contains() (PHP 8) 更清晰 |
str_replace() | 替換(大小寫敏感) | 支援數組批量,str_ireplace() 忽略大小寫 |
preg_match()/preg_replace() | 正則匹配/替換 | 定界符、修飾符、PREG_OFFSET_CAPTURE 獲取位置 |
trim()/ltrim()/rtrim() | 去除首尾字符 | 第二參數可指定字符列表,預設空白字符 |
explode()/implode() | 分割/連接 | implode($arr) 省略膠水參數等同 '' |
sprintf()/vsprintf() | 格式化字符串 | %s 字符串 %d 整數 %.2f 浮點 |
json_encode()/json_decode() | JSON 轉換 | JSON_THROW_ON_ERROR (PHP 7.3) 異常處理,JSON_UNESCAPED_UNICODE 保留中文 |
hash()/hash_hmac() | 哈希/簽名 | sha256、sha3-256,密碼用 password_hash() |
password_hash()/password_verify() | 密碼加密驗證 | 默認 BCrypt,PASSWORD_ARGON2ID (PHP 7.3) 更強 |
bin2hex()/hex2bin() | 二進制⇄十六進制 | 安全隨機 random_bytes() + bin2hex() |
base64_encode()/base64_decode() | Base64 | URL 安全用 rtrim(base64_encode($data), '=') 替換 +/ |
strtotime() | 英文文本轉時間戳 | 相對時間強大,但歧義多,存儲用 DateTimeImmutable |
| 函數/常量 | 用途 | 提示 |
|---|---|---|
DIRECTORY_SEPARATOR / PATH_SEPARATOR | 跨平台路徑/路徑列表分隔符 | 用常量勿硬編碼 / 或 : |
realpath() | 解析絕對路徑(解析轉義、符號鏈接) | 文件不存在返回 false |
basename()/dirname() | 取文件名/目錄名 | pathinfo() 一次獲取全部 |
file_exists()/is_file()/is_dir() | 存在性檢查 | 緩存結果,高併發用 clearstatcache() |
fopen()/fread()/fwrite()/fclose() | 流操作 | 大文件分塊,stream_copy_to_stream() 高效複製 |
file_get_contents()/file_put_contents() | 整文件讀寫 | FILE_APPEND | LOCK_EX 追加寫入加鎖 |
glob() | 模式匹配文件 | 返回數組,大目錄慎用 |
scandir() | 掃描目錄 | 含 . ..,配合 FilesystemIterator 更現代 |
is_int() is_float() is_string() is_bool() is_array() is_object() is_null() is_callable() is_iterable() (PHP 7.1)declare(strict_types=1); function foo(int $a): string {}is_numeric() 陷阱:'0xFF' 返回 true,filter_var($v, FILTER_VALIDATE_INT) 更精確。| 函數 | 用途 | 提示 |
|---|---|---|
mt_rand()/random_int() | 隨機整數 | 加密用途必須用 random_int() |
random_bytes() | 加密安全隨機字節 | 生成 Token、IV、Salt 首選 |
round()/ceil()/floor() | 四捨五入/向上/向下取整 | round(1.234, 2, PHP_ROUND_HALF_EVEN) 銀行家算法 |
abs()/min()/max() | 絕對值/極值 | 支援數組參數 |
pow()/sqrt() | 冪/平方根 | ** 運算符更簡潔 |
spl_autoload_register():註冊多個加載器,PSR-4 標準請用 Composer 生成的 vendor/autoload.php。extension_loaded()/function_exists()/class_exists():運行時特性檢測。