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

PHP 經典面試題精選 50 題:基礎語法、資料庫、演算法與框架總覽

     編輯:PHP 相關知識

PHP 面試必備:50 道高頻題目詳細解析

整理自實際面試經驗,涵蓋 PHP 基礎、MySQL、前端基礎、設計模式、效能優化、安全性等核心領域。每題附帶標準答案與加分點,適合初中級工程師查漏補缺。

第一部分:PHP 基礎語法與核心函數 (1-20)

  1. 取得前一天日期時間:date('Y-m-d H:i:s', strtotime('-1 day'))
  2. echo/print/print_r 差異:echo 多參數無返回值;print 單參數返回 1;print_r 可輸出陣列/物件結構
  3. 常用模板引擎:Smarty、Twig、Blade (Laravel)
  4. 版本控制工具:Git (主流)、SVN、Mercurial
  5. 字串反轉:ASCII 用 strrev();多位元組 (中文) 用 mb_substr() 迴圈或 preg_split('//u', $str)
  6. MySQL 優化方向:索引優化、查詢重寫、分庫分表、讀寫分離、快取、引擎選擇
  7. PHP 全名:Hypertext Preprocessor
  8. MySQL 當前時間/格式化:NOW()、DATE_FORMAT()
  9. 中文截取無亂碼:mb_substr($str, 0, 10, 'UTF-8')
  10. 客戶端/伺服器 IP:$_SERVER['REMOTE_ADDR']、$_SERVER['SERVER_ADDR']
  11. include/require 差異:require 致命錯誤停止;include 警告繼續;require 編譯期載入;include 執行期載入;_once 防重複
  12. Session 生命週期修改:session_set_cookie_params()、ini_set('session.gc_maxlifetime')
  13. 取得遠端頁面內容:file_get_contents() (需 allow_url_fopen)、cURL (更靈活)
  14. HTTP 401/404 Header:header('HTTP/1.1 401 Unauthorized')、header('HTTP/1.1 404 Not Found')
  15. Heredoc 結束標記:頂格獨立行、分號結尾、無縮進
  16. ASP/PHP/JSP 比較:ASP 依賴 IIS/Windows;PHP/JSP 跨平台、開源生態豐富
  17. MVC 模式:Model (資料/邏輯)、View (呈現)、Controller (調度/輸入處理)
  18. SQL Top 10 發文者:SELECT id, username FROM members ORDER BY posts DESC LIMIT 10
  19. 傳值/傳參考:&$var 參考傳遞,函數內修改影響外部;多返回值、大物件傳遞時使用
  20. error_reporting:設定錯誤報告等級,如 E_ALL & ~E_NOTICE

第二部分:資料庫與 SQL 實務 (21-30)

  1. Email 格式驗證:filter_var($email, FILTER_VALIDATE_EMAIL) 或 RFC 5322 相容正則
  2. 取得腳本路徑與參數:$argv、$argc (CLI 模式)
  3. JS 對話框/焦點:alert()/confirm()/prompt()、focus()
  4. JS 跳轉/引入外部檔:location.href、<script src="...">
  5. @ 運算子:抑制錯誤訊息 (含 Notice/Warning),不影響 Fatal Error
  6. 空類別宣告/實例化:class MyClass {}、new MyClass()
  7. 屬性存取:$obj->property、$obj->{'property'}
  8. mysql_fetch_row/array 差異:前者僅數字索引;後者含關聯索引 (預設兩者皆有)
  9. GD 庫用途:動態圖片建立、縮圖、驗證碼、水印、圖表
  10. 輸出 HTML 方式:echo、Heredoc、<?= ?>、模板引擎

第三部分:選擇題與程式碼輸出預測 (31-45)

  1. fopen() 為開啟檔案正確函數
  2. array_add() 不存在,正確為 $arr[]、array_push()
  3. 函數內未 global $num 輸出 10 (區域變數)
  4. 資料類型:int 整數、char 定長、varchar 變長、datetime 時間、text 長文本;char 定長補空格、varchar 實際長度+1位元組
  5. Auto_increment 必須為索引 (通常為 Primary Key)
  6. 三元運算子:$a = $b > $c ? 4 : 5 輸出 4
  7. isset()/empty():檢查變數是否設定/是否為空 (0、''、null、false 皆為空)
  8. mysql_num_rows() 取得結果集筆數
  9. 陣列第一個元素:$arr[0]、reset($arr)、current($arr)
  10. 陣列合併字串:implode(',', $arr)
  11. 字串第一字元:$str[0]、substr($str,0,1)

第四部分:OOP、設計模式與進階 (46-50)

  1. PHP 連接 SQL Server/Oracle:支援,需安裝 sqlsrv、oci8 擴展或使用 PDO
  2. PHP 5 存取修飾符:public、protected、private
  3. 建構/解構函數:__construct()、__destruct()
  4. 取得 URL 副檔名:pathinfo(parse_url($url, PHP_URL_PATH), PATHINFO_EXTENSION)
  5. 相對路徑計算/目錄遞迴掃描:見代碼實作

加分回答技巧

  • 說明 原理 而非僅給語法 (如 Session 儲存機制、GC 機制)
  • 提及 現代替代方案 (如 PDO 取代 mysql_*、Composer 套件管理、PSR 標準)
  • 結合 實戰經驗 談優化案例 (慢查詢分析、快取策略、佇列削峰)
  • 展現 安全意識 (SQL 注入防範、XSS/CSRF 防護、密碼雜湊)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved