字串是由零或多個字元組成的序列:字母、數字、空格、標點符號等。在 PHP 中,字串必須用引號括起來。
| 引號類型 | 範例 | 特性 |
|---|---|---|
| 單引號 | 'Hello World' | 字面值字串,**不解析變數**、**不解析跳脫序列** (除 \' 和 \\) |
| 雙引號 | "Hello $name" | **解析變數**、**解析跳脫序列** (\n, \t, \" 等) |
$name = 'Huige'; $str1 = 'Hello $name'; // 輸出:Hello $name $str2 = "Hello $name"; // 輸出:Hello Huige $str3 = "Line 1\nLine 2"; // 換行 $str4 = 'Line 1\nLine 2'; // 輸出字面:Line 1\nLine 2
\$var = "Define \"platitude\", please."; // 雙引號內跳脫雙引號
$var = 'Define "platitude", please.'; // 單引號包雙引號 $var = "It's a beautiful day."; // 雙引號包單引號
同一變數再次賦值會**覆蓋**舊值:
$book = 'High Fidelity'; $book = 'The Corrections'; // $book 現在為 'The Corrections'
.用點號將多個字串合併:
$a = 'PHP 8'; $b = '效能強大'; echo $a . ':' . $b; // 輸出:PHP 8:效能強大 // 連接賦值運算子 .= $title = 'Chapter 1'; $title .= ': Introduction'; // $title 變為 'Chapter 1: Introduction'
| 函數 | 用途 | 範例 |
|---|---|---|
| strlen() | 取得位元組長度 | strlen('中文') → 6 (UTF-8) |
| mb_strlen() | 取得字元數 (多位元組安全) | mb_strlen('中文', 'UTF-8') → 2 |
| strpos() | 尋找子字串首次出現位置 | strpos('abcde', 'cd') → 2 |
| substr() | 截取子字串 | substr('abcde', 1, 2) → 'bc' |
| mb_substr() | 多位元組安全截取 | mb_substr('中文測試', 0, 2, 'UTF-8') → '中文' |
| str_replace() | 字串替換 | str_replace('old', 'new', $str) |
| explode() | 分割字串為陣列 | explode(',', 'a,b,c') → ['a','b','c'] |
| implode() | 陣列合併為字串 | implode('-', ['a','b','c']) → 'a-b-c' |
| trim() | 移除首尾空白 | trim(' hello ') → 'hello' |
| sprintf() | 格式化字串 | sprintf('%04d', 7) → '0007' |
// Heredoc:雙引號行為 (解析變數) $str = <<總結
字串是 PHP 最基礎也最常用的資料類型。掌握 引號差異、跳脫規則、連接運算子、核心函數 (mb_* 系列),並養成**輸出時用
htmlspecialchars()防 XSS** 的習慣,是寫出安全、正確 PHP 程式的關鍵第一步。