| 函式 | 行為 | 鍵值關係 |
|---|---|---|
| `sort()` | 值由小到大 | **重設數值索引 0..n** |
| `asort()` | 值由小到大 | **保持鍵值關聯** |
| `ksort()` | **鍵名**由小到大 | 保持關聯 |
| `rsort()` | 值由大到小 | 重設索引 |
| `arsort()` | 值由大到小 | 保持關聯 |
| `krsort()` | 鍵名由大到小 | 保持關聯 |
$num = 10;
function multiply() { $num = $num * 10; }
multiply();
echo $num; // 10
**原因**:函式內 `$num` 是區域變數,未宣告 `global $num` 或傳參考,不影響全域 `$num`。
參考變數 (`&$var`) 指向同一記憶體位址,修改其中一個影響另一個。函式參數定義 `function(&$param)` 或呼叫 `func(&$var)` (已棄用/移除)。現代建議**回傳值**或**物件傳遞**(物件預設參考行為)。
`include`, `include_once`, `require`, `require_once`。`*_once` 防重複載入;`require` 失敗致命錯誤,`include` 只警告。
`@` 抑制錯誤訊息 (含 Notice/Warning),**不改變回傳值**。濫用會隱藏 Bug,生產環境慎用。
`===` 比較**值與型別**皆相同。`0 == 'abc'` 為 true (字串轉數值 0),`0 === 'abc'` 為 false。
class MyClass {}
$obj = new MyClass();
$this->prop = $value; $val = $this->prop;
`_once` 防重複;`require` 失敗致命錯誤腳本停止;`include` 發出警告繼續執行。
header('Location: /url'); exit;fopen('file', 'r+')`_row` 回傳**數值索引陣列**;`_array` 回傳**數值+關聯雙重索引** (預設 `MYSQL_BOTH`),記憶體佔用較大。
$date = '08/26/2003';
print ereg_replace('([0-9]+)/([0-9]+)/([0-9]+)', '2/1/3', $date);
**輸出**:`2/1/3`。`ereg_replace` 以 `\1\2\3` 參照捕獲組,但範例替換字串為字面 `2/1/3`,故直接替換整個匹配字串。
$clean = preg_replace('/<[^>]+>/', '', $string);
注意:無法處理屬性含 `>`、CDATA、Script/Style 內容等邊界情況。建議用 `strip_tags()` 或 HTML 解析器。
PHP **陣列即有序映射**,同時支援數值索引與字串鍵;Perl 有分開的 `@array` (有序列表) 和 `%hash` (無序鍵值對)。
Session (Cookie + 伺服端儲存)、JWT (客戶端攜帶狀態)、隱藏表單欄位、URL 重寫。
動態建立/操作圖片:縮圖、驗證碼、水印、圖表、水印等。
見仁見智。PHP 專為 Web 設計、部署簡單、生態龐大;Perl 文字處理強、CPAN 成熟、單行指令威力大。選適合專案與團隊的。