PHP 核心知識體系總覽
本文系統梳理 PHP 開發者必備的核心知識點,涵蓋基礎語法、數據類型、面向對象、數據庫操作、HTTP 協議、項目架構等八大模塊,適合作為面試複習或技術盤點參考。
1. PHP 基礎與運行機制
- 定義:服務端 HTML 嵌入式腳本語言,語法融合 C/Java/Perl,Zend Engine 驅動
- 版本演進:1.0(Perl) → 2.0(C重寫) → 3.0(Zend Engine) → 4.0(Session/Output Buffer) → 5.0(Zend Engine 2/OOP重構) → 7.0(Zend Engine 3/性能倍增) → 8.0(JIT/類型系統增強)
- 運行模式:CLI(命令行)、CGI/FastCGI(Nginx+PHP-FPM)、Module(Apache mod_php)
- 生命周期:模塊初始化 → 請求初始化 → 腳本執行(編譯→執行 Opcode) → 請求關閉 → 模塊關閉
2. 基礎語法與數據類型
| 類別 | 關鍵點 |
| 標記 | <?php ?> (推薦)、<script language="php"></script>、短標記 <? ?> (需開啟 short_open_tag) |
| 變量 | $ 開頭,區分大小寫,命名規範:駝峰/下劃線,可變變量 $$var |
| 常量 | define() 定義,不可變,僅支持標量值,constant() 獲取 |
| 數據類型 | 8大類型:標量,復合,特殊,三大類:標量,復合,特殊 |
| 字符串 | 單引號(不解析變量/轉義少)、雙引號(解析變量/轉義全)、Heredoc/Nowdoc(大文本/模板) |
| 數組 | 有序映射,鍵可為 int/string,長度動態,foreach 遍歷(值拷貝/引用 &$v) |
3. 進階特性:面向對象 (OOP)
- 三大特性:封裝、繼承、多態(PHP通過接口/抽象類模擬)
- 訪問控制:public/protected/private、final(禁止繼承/重寫)、static(靜態成員)、const(類常量)
- 魔術方法:__construct/__destruct、__call/__callStatic、__get/__set/__isset/__unset、__sleep/__wakeup、__clone、__toString、__invoke、__set_state、__debugInfo
- 設計模式:單例(三私一公)、工廠、策略、觀察者、依賴注入容器
- SPL 標準庫:Iterator/ArrayAccess/Countable/Serializable、SplFixedArray/SplObjectStorage、Autoloader(spl_autoload_register)
4. 數據庫操作:MySQL/PDO
- 三大擴展:mysql(已移除)、mysqli(面向過程/對象、預處理)、PDO(數據庫抽象層、多驅動支持)
- PDO 核心:PDO(連接)、PDOStatement(預處理/結果集)、PDOException(異常)、事務(beginTransaction/commit/rollBack)
- SQL 注入防範:預處理綁定參數(bindParam/bindValue)、嚴格類型轉換、最小權限賬號
- 優化技巧:索引設計、慢查詢分析、讀寫分離、分庫分表、緩存穿透/擊穿/雪崩防護
5. HTTP 協議與網絡編程
- 請求/響應結構:請求行/頭/體、響應行/頭/體、狀態碼分類(1xx-5xx)
- Header 應用:Content-Type、Cache-Control、Location(重定向)、Set-Cookie、CORS 跨域
- PHP 處理:$_SERVER/$_GET/$_POST/$_FILES/$_COOKIE/$_SESSION、header() 必須在輸出前調用、output_buffering 控制
- 模擬請求:cURL(推薦)、fsockopen、stream_context_create、Guzzle/HttpClient 現代庫
6. 緩存與性能優化
- Opcode 緩存:OPcache(內置 PHP 5.5+)、預加載(preload PHP 7.4+)
- 數據緩存:Redis(字符串/哈希/列表/集合/有序集合/流/GEO/HyperLogLog)、Memcached(簡單 K/V)
- 頁面靜態化:輸出緩衡生成 HTML、Nginx fastcgi_cache、Varnish/NGX Pagespeed
- 併發優化:連接池、異步非阻塞(Swoole/Workerman)、消息隊列(RabbitMQ/Kafka/RocketMQ)
7. 安全最佳實踐
- 輸入過濾:filter_var、htmlspecialchars、PDO 預處理、嚴格驗證器
- 輸出轉義:HTML/JS/CSS/SQL/Shell 上下文差異化轉義
- 認證授權:密碼 bcrypt/argon2 哈希、JWT/OAuth2、RBAC/ABAC 權限模型、CSRF Token、SameSite Cookie
- 文件上傳:MIME 驗證、隨機重命名、存儲隔離、禁用腳本執行權限、病毒掃描
8. 現代化開發與部署
- 框架生態:Laravel/Symfony/ThinkPHP/CodeIgniter/Yii、PSR 標準(PSR-1/4/7/11/12/15/16/17/18)
- 依賴管理:Composer、Packagist、語義化版本、腳本鉤子
- 測試體系:PHPUnit(單元/集成)、Pest、Mockery、Codeception、靜態分析(PHPStan/Psalm)、代碼風格(PHP-CS-Fixer)
- 容器化部署:Dockerfile 多階段構建、Docker Compose 本地開發、K8s 編排、CI/CD(GitLab CI/GitHub Actions/Jenkins)
- 觀測性:日誌(Monolog/ELK)、指標(Prometheus/Grafana)、鏈路追蹤(Jaeger/Zipkin)、錯誤追蹤(Sentry)
學習路線建議
- 夯實基礎:語法、OOP、數據庫、HTTP、Linux 基礎命令
- 精通一主流框架:Laravel(生態豐富) 或 ThinkPHP(國產文檔友好)
- 深入原理:Zend Engine/Opcode/JIT、PHP-FPM 進程模型、MySQL 索引/B+樹/鎖機制、Redis 數據結構/持久化/集群
- 工程化能力:Git 工作流、代碼審查、自動化測試、CI/CD、監控告警
- 架構視野:DDD 領域驅動設計、微服務/模塊化單體、事件驅動、CQRS/Event Sourcing
PHP 生態歷經 20 多年發展,早已脫離「草根語言」標籤,在企業級應用、高併發系統中佔據重要地位。持續關注 PHP 8.x 新特性(聯合類型、屬性、match 表達式、Fiber 協程等)與生態工具鏈升級,是保持技術競爭力的關鍵。