高階 PHP 工程師面試題庫:八大維度深度考核
1. PHP 基礎與語法陷阱
- 解釋
$a = 0; $b = &$a; $b = 1; echo $a; 輸出?
[] + [] vs array_merge([], []) 差異?
intval('08') 結果?為什麼?
foreach 參考陷阱:foreach ($arr as &$v) { } foreach ($arr as $v) { } 最後 $v 值?
2. 物件導向與設計模式
- Interface vs Abstract Class 選擇依據?
- Trait 解決什麼問題?命名衝突怎麼處理?
- 實作單例、工廠、策略、觀察者模式的 PHP 代碼。
- 依賴注入容器如何解決循環依賴?
3. 安全防禦實戰
- SQL 注入原理與 PDO 預處理防護機制。
- XSS 分類 (反射/儲存/DOM) 與輸出編碼策略 (htmlspecialchars, CSP)。
- CSRF 防護:SameSite Cookie、雙重提交 Token、自定義 Header。
- 檔案上傳攻擊面:MIME 偽造、副檔名繞過、解析漏洞、執行權限。
4. 效能調校與 Profiling
- OPcache 原理 (共享記憶體、AST 快取、JIT) 與關鍵參數調優。
- Blackfire/Xdebug 火焰圖分析熱點路徑。
- 資料庫慢查詢:EXPLAIN、索引覆蓋、關聯 vs 子查詢、分頁優化。
- 快取策略:Redis 資料結構選型、快取穿透/擊穿/雪崩解決方案。
5. 資料庫設計與 ORM
- 正規化 vs 反正規化權衡。
- 事務隔離級別 (RC, RR, Serializable) 與幻讀問題。
- Eloquent/Doctrine 惰性載入 (N+1) 原理與 Eager Loading 解決。
- 分庫分表策略:垂直/水平拆分、分片鍵選擇、分散式事務 (Saga/TCC)。
6. 框架原理 (Laravel/Symfony)
- Service Container 生命週期:Binding、Resolving、Contextual Binding。
- Middleware / Kernel 流程:Request → Middleware Stack → Controller → Response。
- Facades 實現原理:靜態代理 → Container 解析實例。
- 事件/監聽器非同步分發:Queue Worker、Horizon、Messenger。
7. Linux/網路/容器化
- Nginx + PHP-FPM 進程模型:Master/Worker、socket 通訊、slowlog。
- Dockerfile 最佳實踐:多階段建構、層快取、非 root 用戶、健康檢查。
- Kubernetes 部署 PHP:Deployment、HPA、ConfigMap/Secret、Sidecar 日誌。
8. 系統設計與架構
- 設計高併發秒殺系統:Redis Lua 腳本原子扣減、隊列削峰、熔斷降級。
- 微服務拆分原則:領域驅動設計 (DDD) 限界上下文、API 閘道、服務發現。
- 最終一致性模式:事件溯源、CQRS、Outbox Pattern。
- 可觀測性三支柱:Metrics (Prometheus)、Logs (ELK/Loki)、Traces (Jaeger)。
這些題目不僅考驗知識廣度,更考驗工程判斷力與解決複雜問題的能力。