匯總多家一線互聯網公司 PHP 面試真題,涵蓋語言基礎、數據庫優化、框架原理、系統架構、演算法等核心考點,附參考答案與解析,助你高效備戰。
答案:默認不可用。SESSION 依賴 COOKIE 傳遞 PHPSESSID,禁用後需通過 URL 傳遞 session_id 或隱藏表單字段實現,安全性極差,生產環境不推薦。
答案:file_get_contents() + file_put_contents()(簡單場景);大文件/高併發用 curl 流式下載或 Guzzle 異步客戶端。
答案:GET 受限於瀏覽器/服務器 URL 長度(約 2KB~8KB);POST 理論無上限,實際受 post_max_size(默認 8M)、upload_max_filesize、memory_limit、Nginx client_max_body_size 限制。
function max3($a, $b, $c) {
return max($a, $b, $c); // 內置函數最優
// 或三元運算符:return $a > $b ? ($a > $c ? $a : $c) : ($b > $c ? $b : $c);
}
$s = 'abc'; if ($s == 0) echo 'is zero'; // 輸出 is zero! // 原因:字符串轉數字為 0,使用 === 嚴格比較避免
$begin = strtotime('2007-2-5');
$end = strtotime('2007-3-6');
echo ($end - $begin) / 86400; // 86400 = 24*3600
function toCamel($str) {
return str_replace(' ', '', ucwords(str_replace('_', ' ', $str)));
}
// open_door → OpenDoor
function regroup($arr) {
$result = [];
foreach ($arr as $v) {
$result[$v['fid']][] = ['tid' => $v['tid'], 'name' => $v['name']];
}
return array_values($result);
}
實際項目通常遵循 3NF,適當反範式化換查詢性能。
-- 存儲過程 CREATE PROCEDURE proc_countNum(IN columnId INT, OUT rowsNo INT) BEGIN SELECT COUNT(*) INTO rowsNo FROM member WHERE member_id = columnId; END; -- 視圖 CREATE VIEW v_countNum AS SELECT member_id, COUNT(*) AS countNum FROM member GROUP BY member_id;
SELECT GREATEST(A, B, C) AS max_val FROM table; -- MySQL 專用 -- 通用 CASE WHEN 寫法見原文
SELECT *、ORDER BY RAND()、大表 JOINEXPLAIN 分析執行計劃{section name=loop loop=$data}
{$data[loop].id} - {$data[loop].name}
{/section}
{foreach from=$data item=val key=k}
{$k} - {$val.id} - {$val.name}
{/foreach}
function scanDir($dir) {
$files = [];
foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir)) as $file) {
$files[] = $file->getPathname();
}
return $files;
}
$a = [10,2,36,14,10,25,23,85,99,45]; for ($j=0; $j$a[$i+1]) { [$a[$i], $a[$i+1]] = [$a[$i+1], $a[$i]]; // PHP 7.1+ 解構賦值交換 } } }
echo count("abc") → 1(字符串視為單元素數組)$_SERVER['REMOTE_ADDR'](注意代理下需讀 HTTP_X_FORWARDED_FOR)error_reporting(2047) ≡ E_ALL/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/array_multisort() 或 usort()f(n,m) = (f(n-1,m)+m)%n面試不只是背題,更是展示工程思維與解決問題能力的過程。祝你拿到心儀 Offer!