本文匯總高頻 PHP 面試題,涵蓋基礎語法、數據庫、框架、緩存、併發、安全、Linux、架構設計等核心考點,每題附帶標準答案要點、深度解析與避坑提示,適合初中級工程師查漏補缺、高級工程師體系化複習。
答案要點:
echo:語言結構,無返回值,可接多參數 echo $a, $b,速度最快。print:語言結構,只接單參數,返回 1,可用於表達式 $r = print "hi";。print_r:輸出變量結構化信息 (數組/對象),返回 true,print_r($arr, true) 返回字符串。var_dump:輸出類型、長度、值,支援資源類型,調試首選。var_export:輸出合法 PHP 代碼表示,可直接 eval() 恢復,var_export($arr, true) 返回字符串。答案要點:
require:編譯期載入,失敗報 E_COMPILE_ERROR 終止腳本。include:運行期載入,失敗報 E_WARNING 繼續執行。_once:維護已載入文件表,防止重複載入導致函數/類重複定義錯誤。require,執行階段處理 include。答案要點:
== 值比較,觸發類型轉換:0 == "abc" (true)、"" == null (true)、"123" == 123 (true)。=== 全等比較,類型與值均需相同:0 === "0" (false)。答案要點:
HTTP_HOST:來自請求 Header Host,含端口,受客戶端控制,可偽造。SERVER_NAME:來自 Web 服務器配置 (ServerName),不含端口,可信度高。HTTP_X_FORWARDED_HOST、HTTP_X_FORWARDED_PROTO 更可靠。答案要點:
PHPSESSID)。答案要點:
spl_autoload_register 註冊加載器。App\\ -> src/。App\Controller\UserController → 文件 src/Controller/UserController.php。composer dump-autoload -o 生成類映射表,提升生產環境性能。答案要點:
insteadof 選擇保留哪個、as 別名保留被覆蓋方法。答案要點:
yield 暫停執行並返回值,下次調用繼續。yield from 委派給另一個可迭代對象 (PHP 7+)。答案要點:
答案要點:
答案要點:
(a,b,c),查詢需從最左列開始,WHERE a=1 AND b=2 用到,WHERE b=2 不用。EXPLAIN 顯示 Using index。答案要點:
Read View + Undo Log 實現 RR 下的非阻塞讀,解決幻讀 (間隙鎖 + Next-Key Lock)。答案要點:
long_query_time=1。EXPLAIN 分析執行計劃:type (ALL/index/range/ref/eq_ref/const/system)、key、rows、Extra (Using where/Using index/Using temporary/Using filesort)。答案要點:
答案要點:
答案要點:
public/index.php → Kernel::handle() → Router::dispatch() → 中介軟體管道 → ControllerDispatcher → 響應 → Kernel::terminate()。register() (綁定容器) → boot() (依賴服務就緒後執行)。Facade::getFacadeAccessor() 解析容器實例。答案要點: 8 大事件:kernel.request → Controller 解析 → kernel.controller → 參數解析 → Controller 執行 → kernel.view → kernel.response → kernel.terminate。子請求 SUB_REQUEST 區分。
答案要點: 基於 PSR-7/15/17、容器化、中介軟體、路由註解、事件系統、命令行工具、模型事件、軟刪除、數據集、API 資源類。
答案要點: composer.json 定義 autoload.psr-4、extra.laravel.provider、require 依賴、語義化版本、GitHub 連結 Packagist 自動同步。
答案要點: 工廠模式 (Model::create)、單例 (Container)、策略模式 (驅動管理器 Cache/Queue/Log)、觀察者 (Events/Listeners)、裝飾器 (Middleware/Response 裝飾)、代理 (Eloquent 關係延遲加載)、模板方法 (Controller 基類流程)。
答案要點: String (緩存/計數器/分布式鎖)、Hash (用戶信息/購物車)、List (隊列/棧/最新列表)、Set (標籤/簽到/共同好友)、Sorted Set (排行榜/延遲隊列/速率限制)、HyperLogLog (基數統計)、Bitmap (活躍用戶/簽到)、Stream (消息隊列/日誌)。
答案要點:
答案要點: SET key value NX EX 30 原子加鎖,Lua 腳本 原子釋放 (判斷 value 刪除),Redlock 多節點仲裁 (過半成功),鎖續期 (Watchdog 線程)。
答案要點: RabbitMQ (AMQP)、Kafka (高吞吐日誌)、Redis Stream/RocketMQ/Pulsar。PHP 異步消費:Supervisor 守護 php artisan queue:work、Swoole 協程消費、PHP-FPM 定時腳本 (不推薦)。
答案要點: 高內聚低耦合、單一職責、數據庫去中心化。Consul/Nacos/Eureka 服務註冊發現、Apollo/Nacos 配置中心、SkyWalking/Jaeger/Zipkin 鏈路追蹤、API Gateway (Kong/Traefik/Spring Cloud Gateway) 統一入口。
答案要點: top/htop (CPU/內存)、df -h (磁盤)、free -h (內存)、netstat -tulpn / ss -tulpn (端口)、lsof -p PID (進程文件)、strace -p PID (系統調用)、tcpdump -i eth0 port 80 (抓包)、sar -u 1 10 (歷史負載)、journalctl -u php-fpm (systemd 日誌)。
答案要點: upstream 定義後端、proxy_pass 轉發、proxy_set_header 傳遞真實 IP、limit_req_zone 令牌桶限流、ssl_certificate 證書、gzip 壓縮、expires 緩存策略、try_files 靜態文件優先。
答案要點: 多階段構建 (builder + runtime)、基於 php:8.2-fpm-alpine、安裝擴展 docker-php-ext-install pdo_mysql gd redis、Composer 安裝依賴、非 root 用戶運行、健康檢查、日誌輸出 stdout/stderr、.dockerignore 排除 vendor/.git。
答案要點: 代碼檢查 (PHPStan/Psalm/CodeSniffer) → 單元測試 → 構建鏡像 → 推送 Registry → 部署測試環境 → 自動化測試 → 手動審批 → 部署生產 (藍綠/滾動/金絲雀)。
答案要點: XSS: htmlspecialchars、CSP 頭;CSRF: Token 驗證、SameSite Cookie;SQL注入: 預處理語句、ORM;命令注入: escapeshellarg、禁用危險函數;文件上傳: 白名單副檔名、MIME 驗證、重命名存儲、禁用腳本執行權限;SSRF: 內網 IP 白名單、禁止 302 跳轉;XXE: libxml_disable_entity_loader(true)。
答案要點: 前端靜態化 + CDN、按鈕防抖、接口簽名驗證、Redis 預扣庫存 (Lua 原子遞減) + 異步下單 (MQ) → 數據庫最終扣減、讀請求走緩存、寫請求削峰填谷、熔斷降級、庫存預熱、防刷 (IP/用戶/設備限流)。
答案要點: 2PC (同步阻塞)、3PC、TCC (Try-Confirm-Cancel 業務層補償)、Saga (事件驅動補償)、本地消息表 (可靠消息)、Seata AT 模式 (代理層自動生成反向 SQL)。選型視業務強一致/最終一致要求。
答案要點: Situation (背景)、Task (任務)、Action (你的具體行動、技術選型、攻克難點)、Result (量化指標:QPS 提升、延遲降低、成本節省、用戶增長)。
答案要點: 業務場景分析 → 技術方案對比 (成熟度、社區、團隊熟悉度、招聘、長期維護) → PoC 驗證 → 風險評估 → 決策文檔記錄 (ADR)。
答案要點: MR/PR 強制評審、關注點:架構合規、邊界處理、性能隱患、安全漏洞、測試覆蓋、命名規範、文檔更新。新人導師制、技術分享會、內部 Wiki、最佳實踐文檔沉澱。
PHP 面試不再是背誦 API,而是考察原理理解、工程落地能力、架構思維、排查實戰經驗。建議按模塊專項突擊:基礎原理 (內存管理/GC/OPcache) → 數據庫優化 (索引/鎖/事務) → 框架源碼 (容器/路由/中介軟體) → 高併發組件 (Redis/MQ/鎖) → Linux/網絡/容器化運維 → 架構設計與軟實力。每題做到「知其然、知其所以然、知其優劣、知其替代方案」,方能在面試中游刃有餘。