整理自實戰面試高頻題目,涵蓋基礎語法、陣列字串操作、日期時間、資料庫、OOP、設計模式、效能優化、安全性、Linux 指令等核心領域,附參考答案與程式碼片段,適合面試複習與技術自測。
echo date('Y-m-d H:i:s', strtotime('-1 day'));
echo:語言結構,可輸出多字串 echo $a, $b,無回傳值。print:語言結構,單一參數,回傳 1。print_r:函式,可遞迴輸出陣列/物件結構,適合除錯。Smarty、Twig、Blade(Laravel)、Plates。
Git(主流)、SVN、Mercurial。
// 英文
strrev($str);
// 中文(需 mbstring)
$len = mb_strlen($str, 'UTF-8');
$rev = '';
for ($i = $len - 1; $i >= 0; $i--) {
$rev .= mb_substr($str, $i, 1, 'UTF-8');
}
Hypertext Preprocessor
NOW() / CURRENT_TIMESTAMP()
DATE_FORMAT(date, '%Y-%m-%d')
mb_substr($str, 0, 10, 'UTF-8')
$_SERVER['REMOTE_ADDR'] // 客戶端
$_SERVER['SERVER_ADDR'] // 伺服器
include_once、require_once。session_set_cookie_params(3600); // 1小時
// 或 php.ini: session.gc_maxlifetime
file_get_contents($url)
// 或 cURL(支援 Header、Timeout、Proxy)
header('HTTP/1.1 401 Unauthorized');
header('HTTP/1.1 404 Not Found');
// FastCGI 環境
header('Status: 404 Not Found');
須獨佔一行、無前後空白、分號結尾,如 EOD;。
SELECT id, username FROM members ORDER BY posts DESC LIMIT 10
function foo(&$val) { $val = 2; } // 傳址,外部變數會改變
foo($a);
設定錯誤回報等級(如 E_ALL & ~E_NOTICE)。
filter_var($email, FILTER_VALIDATE_EMAIL)
// 或正則(不建議自寫複雜正則)
$argv[0] // 腳本路徑
$argc, $argv // 參數個數與陣列
alert/confirm/prompt/focus
window.location.href = 'url';
<script src="xxx.js"></script>
抑制錯誤訊息(含 Warning/Notice),慎用影響除錯。
class MyClass {}
$obj = new MyClass();
$obj->prop = 'val';
echo $obj->prop;
後者支援關聯索引(欄位名)與數字索引雙模式。
動態圖片建立、縮放、裁切、驗證碼、水印、圖表繪製。
echo '<div>...</div>';
echo <<<HTML
...
HTML;
fopen()
array_add() 不存在;正確為 $arr[]、array_push()。
$num = 10;
function multiply() { $num *= 10; } // 區域變數
multiply();
echo $num; // 輸出 10
$sql = "SELECT * FROM users WHERE username='張三'";
$res = mysqli_query($conn, $sql);
while ($row = mysqli_fetch_assoc($res)) {
printf("用戶:%s 電話:%s 學歷:%s 日期:%s\n", $row['username'], $row['tel'], $row['content'], $row['date']);
}
md5(md5($num . 'En'))
INSERT INTO t (a,b) VALUES ('v1','v2');
UPDATE t SET date=NOW() WHERE username='張三';
DELETE FROM t WHERE username='張四';
AUTO_INCREMENT
$a = 201 > 40 ? 4 : 5; // 4
isset() 判斷是否設定且非 null;empty() 判斷空值(0, '', null, false, [])。
mysqli_num_rows($result)
$arr[0]; reset($arr); current($arr); array_shift($arr);
implode(',', $arr)
$str[0]; substr($str, 0, 1);
支援,需安裝對應 PDO 驅動(pdo_sqlsrv, pdo_oci)。
public / protected / private
public function __construct() {}
public function __destruct() {}
pathinfo(parse_url($url, PHP_URL_PATH), PATHINFO_EXTENSION)../ 回溯。RecursiveDirectoryIterator + RecursiveIteratorIterator。此題庫涵蓋初中級工程師核心技能,建議實作練習並理解原理。