瞭解大部分數組處理函數php
字符串處理函數(區別 mb_ 系列函數)前端
& 引用,結合案例分析vue
== 與 === 區別mysql
isset 與 empty 區別react
所有魔術函數理解webpack
static、$this、self 區別web
private、protected、public、final 區別算法
OOP 思想sql
抽象類、接口 分別使用場景數據庫
Trait 是什麼東西
echo、print、print_r 區別
__construct 與 __destruct 區別
static 做用(區分類與函數內)
__toString() 做用
單引號'
與雙引號"
區別
常見 HTTP 狀態碼,分別表明什麼含義
301 什麼意思 404 呢
Autoload、Composer 原理
Session 共享、存活時間
異常處理
如何 foreach 迭代對象
如何數組化操做對象 $obj[key]
如何函數化對象 $obj(123);
yield 是什麼,說個使用場景
PSR 是什麼,PSR-1, 2, 4, 7
如何獲取客戶端 IP 和 服務端 IP 地址
如何開啓 PHP 異常提示
如何返回一個301重定向
如何獲取擴展安裝路徑
字符串、數字比較大小的原理,注意 0 開頭的8進制、0x 開頭16進制
BOM 頭是什麼,怎麼除去
什麼是 MVC
依賴注入實現原理
如何異步執行命令
模板引擎是什麼,解決什麼問題、實現原理(Smarty、Twig、Blade)
如何實現鏈式操做 $obj->w()->m()->d();
Xhprof 、Xdebug 性能調試工具使用
索引數組 [1, 2]
與關聯數組 ['k1'=>1, 'k2'=>2]
有什麼區別
給定二維數組,根據某個字段排序
如何判斷上傳文件類型,如:僅容許 jpg 上傳
不使用臨時變量交換兩個變量的值 $a=1; $b=2;
=> $a=2; $b=1;
strtoupper 在轉換中文時存在亂碼,你如何解決?php echo strtoupper('ab你好c');
Websocket、Long-Polling、Server-Sent Events(SSE) 區別
"Headers already sent" 錯誤是什麼意思,如何避免
快速排序(手寫)
冒泡排序(手寫)
二分查找(瞭解)
查找算法 KMP(瞭解)
深度、廣度優先搜索(瞭解)
LRU 緩存淘汰算法(瞭解,Memcached 採用該算法)
堆、棧特性
隊列
哈希表
鏈表
Cookie 與 Session 區別
GET
與 POST
區別
include
與 require
區別
include_once
與 require_once
區別
Memcached 與 Redis 區別
MySQL 各個存儲引擎、及區別(必定會問 MyISAM 與 Innodb 區別)
HTTP 與 HTTPS 區別
Apache 與 Nginx 區別
define() 與 const 區別
traits 與 interfaces 區別 及 traits 解決了什麼痛點?
Git 與 SVN 區別
MySQL
索引、聯合索引(命中條件)
分庫分表(水平分表
、垂直分表
)
分區
會使用 explain
分析 SQL 性能問題,瞭解各參數含義
Slow Log(有什麼用,何時須要)
重點理解 type
、rows
、key
CRUD
JOIN、LEFT JOIN 、RIGHT JOIN、INNER JOIN
UNION
GROUP BY + COUNT + WHERE 組合案例
經常使用 MySQL 函數,如:now()、md5()、concat()、uuid()等
1:1
、1:n
、n:n
各自適用場景
瞭解觸發器是什麼,說個使用場景
數據庫優化手段
MSSQL(瞭解)
查詢最新5條數據
NOSQL
持久化
支持多鍾數據類型
可利用 CPU 多核心
內存淘汰機制
集羣 Cluster
支持 SQL
性能對比
支持事務
應用場景
Redis、Memcached、MongoDB
對比、適用場景(可從如下維度進行對比)
你以前爲了解決什麼問題使用的什麼,爲何選它?
查看 CPU、內存、時間、系統版本等信息
find 、grep 查找文件
awk 處理文本
查看命令所在目錄
本身編譯過 PHP 嗎?如何打開 readline 功能
如何查看 PHP 進程的內存、CPU 佔用
如何給 PHP 增長一個擴展
修改 PHP Session 存儲位置、修改 INI 配置參數
負載均衡有哪幾種,挑一種你熟悉的說明其原理
數據庫主從複製 M-S 是怎麼同步的?是推仍是拉?會不會不一樣步?怎麼辦
如何保障數據的可用性,即便被刪庫了也能恢復到分鐘級別。你會怎麼作。
數據庫鏈接過多,超過最大值,如何優化架構。從哪些方便處理?
502 大概什麼什麼緣由? 如何排查 504呢?
偏運維(瞭解):
負載均衡(Nginx、HAProxy、DNS)
主從複製(MySQL、Redis)
數據冗餘、備份(MySQL增量、全量 原理)
監控檢查(分存活、服務可用兩個維度)
MySQL、Redis、Memcached Proxy 、Cluster 目的、原理
分片
高可用集羣
RAID
源代碼編譯、內存調優
緩存
工做中遇到哪裏須要緩存,分別簡述爲何
搜索解決方案
性能調優
各維度監控方案
日誌收集集中處理方案
國際化
數據庫設計
靜態化方案
畫出常見 PHP 應用架構圖
ThinkPHP(TP)、CodeIgniter(CI)、Zend(非 OOP 系列)
Yaf、Phalcon(C 擴展系)
Yii、Laravel、Symfony(純 OOP 系列)
Swoole、Workerman (網絡編程框架)
對比框架區別幾個方向點
是否純 OOP
類庫加載方式(本身寫 autoload 對比 composer 標準)
易用性方向(CI 基礎框架,Laravel 這種就是高開發效率框架以及基礎組件多少)
黑盒(相比 C 擴展系)
運行速度(如:Laravel 加載一大堆東西)
內存佔用
單例模式(重點)
工廠模式(重點)
觀察者模式(重點)
依賴注入(重點)
裝飾器模式
代理模式
組合模式
SQL 注入
XSS 與 CSRF
輸入過濾
Cookie 安全
禁用 mysql_
系函數
數據庫存儲用戶密碼時,應該是怎麼作才安全
驗證碼 Session 問題
安全的 Session ID (讓即便攔截後,也沒法模擬使用)
目錄權限安全
包含本地與遠程文件
文件上傳 PHP 腳本
eval
函數執行腳本
disable_functions
關閉高危函數
FPM 獨立用戶與組,給每一個目錄特定權限
瞭解 Hash 與 Encrypt 區別
PHP 數組底層實現 (HashTable + Linked list)
Copy on write 原理,什麼時候 GC
PHP 進程模型,進程通信方式,進程線程區別
yield 核心原理是什麼
PDO prepare 原理
PHP 7 與 PHP 5 有什麼區別
Swoole 適用場景,協程實現方式
原生獲取 DOM 節點,屬性
盒子模型
CSS 文件、style 標籤、行內 style 屬性優先級
HTML 與 JS 運行順序(頁面 JS 從上到下)
JS 數組操做
類型判斷
this 做用域
.map() 與 this 具體使用場景分析
Cookie 讀寫
JQuery 操做
Ajax 請求(同步、異步區別)隨機數禁止緩存
Bootstrap 有什麼好處
跨域請求 N 種解決方案
新技術(瞭解)
ES6
模塊化
打包
構建工具
vue、react、webpack、
前端 mvc
優化
瀏覽器單域名併發數限制
靜態資源緩存 304 (If-Modified-Since 以及 Etag 原理)
多個小圖標合併使用 position 定位技術 減小請求
靜態資源合爲單次請求 並壓縮
CDN
靜態資源延遲加載技術、預加載技術
keep-alive
CSS 在頭部,JS 在尾部的優化(原理)
IP 地址轉 INT
192.168.0.1/16 是什麼意思
DNS 主要做用是什麼?
IPv4 與 v6 區別
TCP 三次握手流程
TCP、UDP 區別,分別適用場景
有什麼辦法能保證 UDP 高可用性(瞭解)
TCP 粘包如何解決?
爲何須要心跳?
什麼是長鏈接?
HTTPS 是怎麼保證安全的?
流與數據報的區別
進程間通訊幾種方式,最快的是哪一種?
fork()
會發生什麼?
RESTful 是什麼
如何在不支持 DELETE
請求的瀏覽器上兼容 DELETE
請求
常見 API 的 APP_ID
APP_SECRET
主要做用是什麼?闡述下流程
API 請求如何保證數據不被篡改?
JSON 和 JSONP 的區別
數據加密和驗籤的區別
RSA 是什麼
API 版本兼容怎麼處理
限流(木桶、令牌桶)
OAuth 2 主要用在哪些場景下
JWT
PHP 中 json_encode(['key'=>123]);
與 return json_encode([]);
區別,會產生什麼問題?如何解決
瞭解經常使用語言特性,及不一樣場景適用性。
PHP VS Golang
PHP VS Python
PHP VS JAVA
瞭解 PHP 擴展開發
熟練掌握 C