首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

33 道 PHP 經典面試題與詳解答案(含核心知識點)

     編輯:PHP 綜合知識

前言

整理 33 道高頻 PHP 面試題,涵蓋基礎語法、陣列、字串、資料庫、安全、效能等核心領域,附帶參考答案與解析,適合求職複習與知識查漏。

題目與答案

  1. 預定義變數:當前腳本名稱(不含路徑)在 $_SERVER['PHP_SELF'];連結到當前頁面的 URL 在 $_SERVER['HTTP_REFERER']。
  2. 輸出結果:echo 0; 輸出 0。
  3. HTTP 1.0 狀態碼:401 代表「未授權」;回傳 404 寫法:header("HTTP/1.0 404 Not Found");。
  4. 陣列函數:arsort() 反向排序並保持索引關係;error_reporting(2047) 等同 E_ALL(所有錯誤與警告)。
  5. 正則過濾 JS/VBS:/<[^>].*?>.*?<\/>/si(需視實際情況調整)。
  6. Apache 模組安裝 PHP:LoadModule php5_module "D:/xampp/apache/bin/php5apache2.dll";AddType application/x-httpd-php .php .php5 .php4 .php3 .phtml。
  7. include vs require:前者產生警告,後者產生致命錯誤;避免重複包含用 include_once()/require_once()。
  8. 類屬性序列化存入 Session:使用 serialize() / unserialize()。
  9. 函數參數傳址:需在 php.ini 設 allow_call_time_pass_reference = On(PHP 5.4+ 已移除,建議改用參考傳遞語法 &$var)。
  10. LEFT JOIN:左外連接。範例:SELECT name, SUM(score) FROM tbl_user LEFT JOIN tbl_score ON tbl_user.ID=tbl_score.ID GROUP BY tbl_user.ID。
  11. Heredoc 結束標記:結束標識符所在行不能包含任何其他字符(含分號與縮進)。
  12. 前一天時間格式:echo date('Y-m-d H:i:s', strtotime('-1 day'));。
  13. echo/print/print_r 差異:echo 語言結構無回傳;print 函數有回傳值;print_r 遞迴輸出陣列/物件。
  14. 字串翻轉:strrev($str) 或手寫迴圈。
  15. 中文截取不亂碼:mb_substr()。
  16. 簡單查詢範例:SELECT Name,Tel,Content,Date FROM User WHERE Name='張三'。
  17. 類的使用與解釋:雙重 MD5 加鹽,md5(md5($num)."En")。
  18. 取副檔名五種方法:pathinfo()、strrchr()、substr()+strrpos()、array_pop(explode())、strrev()+substr()+strpos()。
  19. 修改 Session 生命週期:session_set_cookie_params($lifetime); session_start();。
  20. 下劃線轉駝峰:function test($str){ $arr=explode('_',$str); return implode('', array_map('ucfirst',$arr)); }。
  21. 取網址與 IP:$_SERVER['REQUEST_URI']、$_SERVER['REMOTE_ADDR']。
  22. 日期差天數:(strtotime('2007-3-6')-strtotime('2007-2-5'))/86400。
  23. SQL 條件選擇最大值:SELECT CASE WHEN A>B THEN A ELSE B END, CASE WHEN B>C THEN B ELSE C END FROM test。
  24. SQL 優化方向:表連接順序、WHERE 條件順序、避免 SELECT *、用 WHERE 替代 HAVING、善用內建函數、避免索引列運算、GROUP BY 前過濾。
  25. mysql_fetch_row vs _array:前者回傳數字索引陣列,後者可同時回傳關聯與數字索引(含 mysql_fetch_assoc 功能)。
  26. ereg_replace 日期格式轉換:將 MM/DD/YYYY 轉 DD/MM/YYYY。
  27. GD 函式庫:處理圖片生成、縮圖、驗證碼等;替代方案 ImageMagick 需額外安裝。
  28. 頁面載入優化:按需連接資料庫、加索引、靜態化、大檔案分流、CDN、程式碼優化工具。
  29. 防 SQL 注入:addslashes() 或預處理語句(PDO/MySQLi)。
  30. 傳值/傳址/傳參考:傳值複製副本;傳址/傳參考指向同一記憶體位址(PHP 用 &$var)。
  31. JS 判斷彈窗被攔截:var win=open(...); if(!win||win.closed||typeof win=='undefined'){ /* blocked */ }。
  32. 大流量解決方案:硬體擴充、資料庫優化、防盜鏈、限制大檔下載、分流架構、流量分析。

複習建議

  • 釐清每題背後的核心概念(如參考傳遞、錯誤層級、SQL 連接類型)。
  • 實際動手執行程式碼,觀察輸出差異。
  • 延伸閱讀:PHP 官方手冊、MySQL 優化指南、設計模式在 PHP 中的應用。

結語

面試題是檢視知識體系的切入點,深入理解原理勝過死記答案。祝各位面試順利!

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved