# 常見經典面試題
- 什么是引用變量?在PHP中用什么符號定義引用變量。
- 要求寫出jQuery中,可以處理Ajax的幾種方法。
- PHP中字符串可以使用哪三種定義方法以及各自的區別是什么?
- 用PHP寫出顯示客戶端IP與服務器IP的代碼。
- `__FILE__`表示什么意思?
- foo()和@foo()之間的區別。
- 請列出3種PHP數組循環操作的語法,并注明各種循環的區別。
- PHP中如何優化多個if...else語句的情況?
- 將可能性較大的條件盡可能往前挪;
- 如果條件表達式的結果為:字符串、浮點數或整型,則可以使用switch...case。
- 至少寫出一種驗證139開頭的11位手機號碼的正則表達式
- 不斷在文件hello.txt頭部寫入一行"hello world"字符串,要求代碼完整。
- 簡述cookie和session的區別及各自的工作機制,存儲位置等,簡述cookie的優缺點。
- 為什么要使用會話控制技術?
- 請寫出PHP類權限控制修飾符
- HTTP/1.1中,狀態碼200, 301, 304, 403, 404, 500的含義。
- 寫出盡可能多的Linux命令
- 您是否使用過版本控制軟件?如果有您用的版本控制軟件的名字是什么?
- 下列不屬于JavaScript語法關鍵/保留字的是(var, $, function, while)
- 寫出三種以上MySQL數據庫存儲引擎的名稱
- 編寫一個在線留言本,實現用戶的在線留言功能
- 談談你對MVC的認識,介紹幾種目前比較流行的MVC框架
- 請寫出常見的排序算法
- PHP中如何解決網站的大流量與高并發的問題
- JavaScript的HTML樣式操作以及jQuery的選擇器和事件、樣式操作。
- jQuery選擇器:基本選擇器,層次選擇器,過濾選擇器,可見性過濾選擇器,屬性過濾選擇器,子元素過濾選擇器,表單對象屬性過濾選擇器
- jQuery事件:$("button").click(function(){...do somthing...})
- jQuery效果:$("p").show()
- jQuery DOM操作:屬性,值,節點,CSS,尺寸
- JavaScript中的id為test的元素設置樣式為good;
- 要求使用jQuery事件寫在頁面元素加載完成后,動態綁定click事件到btnOk元素;
- Ajax技術利用了什么協議?簡述Ajax的工作機制?
- jQuery的Ajax操作
- 常用方法:$(ele).load(), $.ajax(), $.get(), $.post(), $.getJSON(), $.getScript()
- 系統定時任務
- vi/vim編輯器
- shell基礎:腳本執行方式。編寫基礎:開頭用#!指定腳本解釋器,如:#!/bin/sh
- 如何實現每天0點重新啟動服務器
- 請寫出下面MySQL數據類型表達的意義: int(0), char(16), varchar(16), datetime, text
- 牢記以上基礎知識點,理解數據類型Char和Varchar的差異,表存儲引擎InnoDB和MyISAM的區別。
- 簡單描述MySQL中,索引、主鍵、唯一索引、聯合索引的區別,對數據庫的性能有什么影響?
- MySQL索引的基礎和類型
- 索引的基礎
- 索引對性能的影響
- 索引的使用場景
- 索引的類型
- 延伸:MySQL索引的創建原則
- 延伸:MySQL索引的注意事項
- 創建MySQL復合索引應該注意哪些事項?
有A(id,sex,par,c1,c2),B(id,age,c1,c2)兩張表,其中A.id與B.id關聯,現在要求寫一條SQL語句,將B中age>50的記錄的c1,c2更新到A表中統一記錄的c1,c2字段中。
- MySQL的關聯UPDATE語句
- 延伸:MySQL的關聯查詢語句
- 延伸:MySQL的關聯查詢語句
- 記錄足球比賽的結果:SELECT T1.teamName, M.matchResult, T2.teamName, M.matchTime FROM `match` M LEFT JOIN `team` T1 ON T1.teamID=M.hostTeamID LEFT JOIN `team` T2 ON T2.teamID=M.guestTeamID WHERE M.matchTime between '2018-09-01' and '2018-09-30';
- 請簡述項目中優化SQL語句執行效率的方法,從哪些方面,SQL語句性能如何分析?
- 分析SQL查詢慢的方法:
- 記錄慢查詢日志
- 分析查詢日志,不要直接打開慢查詢日志進行分析,這樣比較浪費時間和精力,可以使用pt-query-digest工具進行分析
- 使用show profile
- 使用show status
- 使用show processlist
- 使用explain
- 優化查詢過程中的數據訪問
- 優化長難的查詢語句
- SQL語句優化的有些方法
- 簡述MySQL分表操作和分區的工作原理,分別說說分區和分表的使用場景和各自優缺點。
- 分區表的原理,適用場景
- 通過一些HASH算法或者工具實現將一張數據表垂直或者水平進行物理切分,適用場景。
- 延伸:MySQL的復制原理及負載均衡:
- 設定網站的用戶數量在千萬級,但是活躍用戶的數量只有1%,如何通過優化數據庫提高活躍用戶的訪問速度?
- SQL語句應該考察哪些安全性?
- 為什么使用PDO和MySQLi連接數據庫會比mysql函數庫更加安全。
- 編寫一個在線留言本,實現用戶的在線留言功能,留言信息存儲到數據庫,要求設計數據表內容以及使用PHP編碼完成。
- 設計一個無限分類表
- 談談你對MVC的認識,介紹幾種目前比較流行的MVC框架。
- PHP是一種HTML內嵌式的在服務端執行的腳本語言,但是PHP有很多可以使PHP代碼和HTML代碼分開的模板引擎,例如:Smarty, Twig, Haml, Liquid等。
- 框架中什么是單一入口和多入口,單一入口的優缺點。
- PHP框架有哪些,你用過哪些?各自的優缺點是什么?
- 根據自己的框架使用經驗,理解所使用框架的特性。例如:Yii2框架的路由配置等;
- Yii2框架如何實現數據的自動驗證?
- 請寫出常見的排序算法,并用PHP實現冒泡排序,將數組按照從小到大的方式進行排序。
- PHP如何解決網站大流量和高并發的問題?
- 防盜鏈的實現方法
- 減少HTTP請求的方式
- 瀏覽器緩存和壓縮優化技術
- 緩存策略的選擇
- Nginx配置緩存策略
- 前端代碼和資源的壓縮
- CDN加速
- 動態語言靜態化
- 為什么要靜態化
- 動態語言層的并發處理
- 數據庫緩存層的優化
- Web服務器的負載均衡、請求分發