本文彙整 PHP 開發中最常用、最易混淆的核心語法知識點,包含請求方式差異、常量定義、變量作用域、運算符優先級、輸出語句差異、空值判斷與 switch 特性。
| 特性 | GET | POST |
|---|---|---|
| 資料傳遞 | URL 參數(查詢字串) | HTTP Body |
| 長度限制 | 約 2KB(瀏覽器/伺服器限制) | 理論無限(受 post_max_size) |
| 安全性 | 低(歷史記錄、日誌可見) | 較高(不在 URL) |
| 快取/書籤 | 可快取、可書籤 | 不可 |
| 適用場景 | 查詢、分頁、搜尋、無副作用操作 | 表單提交、修改資料、上傳檔案 |
define('PI', 3.14159); // 全域常量,不區分大小寫可選第三參數 true
const PI2 = 3.14159; // 類常量或命名空間常量,編譯期定義
echo PI, PI2;
// 特殊名稱常量需用 constant() 讀取
define('^_^', '笑臉');
echo constant('^_^'); // 不能直接 echo ^_^
$v1 = 'global';
function func1() {
global $v1; // 引入全域變量
echo $v1;
}
function func2() {
global $v2;
$v2 = 'from func2'; // 全域可見
}
func2();
echo $v2; // 輸出 from func2
$result = doSomething() or die('失敗'); // 等同於 ($result = doSomething()) or die(...)
$result = doSomething() || die('失敗'); // 等同於 $result = (doSomething() || die(...))
| 特性 | echo | |
|---|---|---|
| 多參數 | 支援 `echo 'a','b','c';` | 單一參數 |
| 返回值 | 無 | 永遠返回 1 |
| 效能 | 略快 | 稍慢 |
| 用法 | 語言結構,括號可省 | 語言結構,可用於複雜表達式 |
echo 'a', 'b', 'c'; // 正確
echo ('a'), ('b'), ('c'); // 加括號需分開
$ret = print 'Hello'; // $ret = 1
$val = [1,2,3];
switch ($val) {
case [1,2,3]: echo '匹配陣列'; break;
case true: echo '為真'; break;
}
熟練掌握這些核心語法細節,能避免 80% 的 PHP 邏輯錯誤與安全隱患。