PHP 提供極豐富的內建函式庫,涵蓋字串、陣列、日期時間、檔案系統、資料庫、JSON、加密、圖片處理等數百項功能。善用系統函式、自訂函式模組化、遞迴解決樹狀問題、頁面引用組織專案結構,是 PHP 開發的四大支柱。
| 分類 | 代表函式 | 官方文件入口 |
|---|---|---|
| 字串處理 | strlen, substr, strpos, str_replace, explode, implode, preg_match, mb_* | 字串函式詳解 |
| 日期時間 | date, time, strtotime, DateTime, DateInterval, DatePeriod | 日期時間函式詳解 |
| 陣列操作 | array_map, array_filter, array_reduce, array_merge, array_keys, in_array | PHP 手冊 Array Functions |
| 檔案系統 | fopen, file_get_contents, file_put_contents, scandir, glob, pathinfo | PHP 手冊 Filesystem Functions |
| 資料庫 (PDO/MySQLi) | PDO::query, prepare, execute, fetchAll, mysqli_query, bind_param | PHP 手冊 Database Extensions |
| JSON | json_encode, json_decode, json_last_error | PHP 手冊 JSON Functions |
| 加密雜湊 | password_hash, password_verify, hash, hash_hmac, openssl_* | PHP 手冊 Hash/Crypt |
| 圖片處理 (GD/Imagick) | imagecreatefromjpeg, imagecopyresampled, imagepng, Imagick | PHP 手冊 Image Processing |
查閱策略:不必背誦所有函式,遇到需求 → 手冊搜尋關鍵字 → 確認參數/回傳/錯誤處理 → 寫測試驗證 → 封裝為專案通用函式。
require/include 差異、_once 機制、Composer 自動載入。global/$GLOBALS/unset/預設值/參考傳遞/可變參數。autoload.files 自動載入。fn(), function() use())、箭頭函式 (PHP 7.4+)、Generator (yield) 處理大資料集。| 反模式 | 問題 | 修正方向 |
|---|---|---|
| 巨大單一函式 (> 50 行) | 難測試、難複用、難理解 | 拆分為多個單一職責函式,組合調用 |
| 過度使用 global/$GLOBALS | 隱性相依、難單元測試、平行執行不安全 | 改為參數傳遞、依賴注入、服務容器 |
| 函式內直接 echo/print | 輸出耦合、無法複用、測試困難 | 回傳字串/資料結構,由呼叫端決定輸出 |
| 捕獲所有 Exception 只記錄不處理 | 錯誤靜默吞沒、上層無法感知 | 拋出具體例外類別、讓上層決定處理策略 |
| 遞迴處理線性大量資料 | 堆疊溢位、效能差 | 改用迴圈、Generator、資料庫游標 |
將此頁加入書籤,需要時點擊對應連結深入學習,系統化建構 PHP 函式知識體系。