前言
整理自實際面試題庫,涵蓋 PHP 基礎、MySQL、HTML/CSS/JS、物件導向、安全、效能等核心知識點。適合面試複習、技術考核出題。
一、基礎語法與語言特性(1-20)
- JS 前身是? LiveScript(B)
- CSS 文字閃爍屬性? text-decoration: blink(D)
- XML 基於標準? SGML(C)
- <title> 放在? <head> 內(B)
- <img> 連結圖片屬性? src(B)
- CSS 副檔名? .css(B)
- HTML4.0 增強? 動態性(C)
- <pre> 作用? 預排版(B)
- 換行標籤? <br>(B)
- <hx> 最大 x? 6(C)
- 非 DDL 語句? SELECT(A)
- mysql_select_db 成功回傳? TRUE(C)
- 多連線 mysql_close() 關閉? 最後開啟的 $link2(B)
- mysql_affected_rows 不影響? SELECT(A)
- mysql_data_seek 位置從? 0 開始(D)
- 取得結果集行數? mysql_num_rows(C)
- mysql_pconnect 作用? 持久連線(D)
- 取得 MySQL 狀態函數? mysql_stat(C)
- mysql_insert_id 作用? 取得剛插入的 AUTO_INCREMENT ID(B)
- mysql_ping 回傳型別? 布林(D)
二、物件導向與進階語法(21-40)
- 類別方法呼叫正確寫法? require → new Class → $obj->method()(A)
- mysql_db_query vs mysql_query? 前者不切回原資料庫(C)
- MYSQL_ASSOC 取值錯誤? $row[0] 應為 $row['id'](A 報錯)
- @mysql_connect 差異? @ 抑制錯誤輸出(B)
- for($k=0;$k=1;$k++) 執行次數? 無限(賦值恆真)/ for($k=0;$k==1;$k++) 0 次(A)
- $_POST 取值正確? $_POST["name"](B)
- 運算子優先級高→低? 算術 > 比較 > 邏輯(B)
- Cookie 儲存位置? 客戶端(C)
- 查看變數型別函數? gettype()(B)
- 字串比較依據? ASCII 碼值(B)
- 核取方塊 type? checkbox(A)
- Session 儲存位置? 伺服器端(D)
- 取得最近查詢資訊? mysql_info(A)
- 查看結構變數值? print_r()(D)
- 所有 Cookie 陣列? $_COOKIE(A,注意非 $_COOKIES)
- 錯誤敘述? 未賦值變數非 0,unset 視為 NULL(B)
- strtolower 功能? 全轉小寫(A)
- 表格儲存值標籤? <td>(B)
- 轉字串函數? strval()(B)
- 字串連接運算子? .(D)
三、函數與陣列操作(41-60)
- 函數不支援? 指標傳參(C)
- 文字框 type? text(A)
- ^ 運算子? 位元異或(D)
- 函數回傳關鍵字? return(C)
- 檢查常數定義? defined()(注意非 isdefined,C 為陷阱題,正確應為 defined)
- mysql_select_db 作用? 選擇資料庫(D)
- title 位置? <head> 內(B)
- 陣列大小函數? count()(A)
- 隊列刪除隊頭? array_shift()(C)
- 嵌入 JS 標籤? <script language="javascript">(A)
- 陣列索引 3 指定值? $A[2] 無輸出(D)
- 建立陣列函數? array()(A)
- 非法變數名? $2abc(B)
- $_GET 取值? $_GET["name"](A)
- var_dump 意義? 輸出變數資訊(C)
- strtoupper 功能? 全轉大寫(A)
- if($i="") 輸出? 賦值成功為空字串→false→輸出 b(B)
- str_replace 參數順序? 搜尋、替換、主體(B)
- 網頁可見內容? <body>(C)
- % 運算子? 餘數(C)
- file() 回傳型別? 陣列(A,原題誤標 B)
四、運算與型別轉換(61-80)
- $a=5; $a+=2 結果? 7(C)
- MySQL 錯誤敘述? 單次操作不可混合不同資料庫表格(D)
- 比較運算子? ==(C)
- 變數前綴? $(B)
- $foo=1+"bob3" 結果? 1(字串轉數值為 0,A)
- 位運算子不含? !(邏輯非,D)
- PHP 型別系統? 弱型別、上下文自動判斷(D)
- PHP 分隔符? <?php ... ?>(A)
- 非輸出指令? write(D)
- 定義常數? define()(C)
- if($a) 輸出 false 的 $a? "0"(字串 0 視為 false,D)
- $g=14; $h=$g+=10 結果? $h=$g=24(A)
- 物件方法/屬性存取? ->(B)
- $a=5; $b=($a--) 結果? $b=5(後遞減,B)
- <br> 用途? 換行(B)
- 刪除目錄函數? rmdir(D)
五、程式設計題(參考解答)
1. 使用者登入驗證
$link = mysqli_connect($host, $user, $pass, $db); // 建議用 mysqli/PDO
$sql = "SELECT userid FROM user WHERE userid=? AND password=?";
$stmt = mysqli_prepare($link, $sql);
mysqli_stmt_bind_param($stmt, 'ss', $userid, $password);
mysqli_stmt_execute($stmt);
mysqli_stmt_store_result($stmt);
if (mysqli_stmt_num_rows($stmt) > 0) echo "登入成功"; else echo "帳號不存在";
2. 刪除學生資料
$link = mysqli_connect("localhost","root","1234","study");
$sql = "DELETE FROM student WHERE id=9701";
if (mysqli_query($link, $sql)) echo "刪除成功"; else echo "刪除失敗";
3. 繼承與多型輸出
a=0 b=0
a=1 b=2 c=3 d=4
結語
題庫涵蓋面試高頻考點,建議:理解原理優於背誦答案。實務中請棄用 mysql_* 系列,改用 mysqli 或 PDO(預處理、物件導向、支援多資料庫)。持續精進,面試自然水到渠成。