?
以下是整理的 PHP 常見面試題與答案,涵蓋基礎語法、面向對象、數據庫、安全等核心知識點,幫助系統化備考。
PHP 基礎語法
Q1: 解釋 echo、print、print_r 的區別
echo 是語言結構,可輸出多個字符串(無返回值),速度最快。
print 是函數,只能輸出一個字符串(返回 1),速度次之。
print_r 用于打印變量的人類可讀信息(如數組),調試時常用。
Q2: == 和 === 的區別
== 比較值是否相等(忽略類型),如 "5" == 5 為 true。
=== 嚴格比較值和類型,"5" === 5 為 false。
Q3: 超全局變量列舉
$_GET、$_POST、$_REQUEST、$_SESSION、$_COOKIE、$_SERVER、$_ENV、$_FILES。
面向對象編程
Q4: 抽象類與接口的區別
抽象類可包含具體方法,接口只能定義方法簽名。
類只能繼承一個抽象類,但可實現多個接口。
抽象類用于代碼復用,接口強調行為契約。
Q5: Trait 的作用
解決 PHP 單繼承限制,通過 use 關鍵字混入代碼片段。例如復用日志功能:
trait LogTrait {
public function log($msg) {
echo $msg;
}
}
class User {
use LogTrait;
}
Q6: 魔術方法示例
__construct():構造函數
__destruct():析構函數
__get()/__set():屬性訪問攔截
數據庫與 MySQL
Q7: 防止 SQL 注入的方法
使用預處理語句(PDO 或 MySQLi):
$stmt = $pdo->prepare("SELECT * FROM users WHERE id = ?");
$stmt->execute([$id]);
避免直接拼接 SQL 字符串。
Q8: MySQL 索引優化原則
為頻繁查詢的字段(如 WHERE、JOIN 條件)創建索引。
避免過度索引,影響寫入性能。
使用 EXPLAIN 分析查詢執行計劃。
安全與性能
Q9: XSS 攻擊防御
輸出時轉義:htmlspecialchars($str, ENT_QUOTES)。
設置 Cookie 的 HttpOnly 屬性。
使用 CSP(內容安全策略)頭。
Q10: 優化 PHP 腳本性能
使用 OpCache 緩存字節碼。
減少數據庫查詢(如用 JOIN 替代循環查詢)。
避免在循環中執行耗時操作(如文件讀寫)。
進階概念
Q11: 設計模式舉例
單例模式:確保類只有一個實例(如數據庫連接)。
工廠模式:通過工廠類創建對象,解耦調用方與具體類。
Q12: Composer 的作用
管理 PHP 依賴包,自動加載類文件。常用命令:
composer require package-name # 安裝依賴
composer dump-autoload -o # 優化自動加載
實戰場景
Q13: 處理大文件上傳
修改 php.ini 的 upload_max_filesize 和 post_max_size。
分片上傳(前端切分文件,后端合并)。
Q14: 實現 JWT 認證
use Firebase\JWT\JWT;
$token = JWT::encode(['user_id' => 123], 'secret_key', 'HS256');
以上為部分高頻問題,完整版建議結合具體技術棧(如 Laravel、Symfony)深入準備。
?
浙公網安備 33010602011771號