《PHP程序員面試筆試寶典》針對當前各大IT企業(yè)面試筆試中特性與側(cè)重點,精心挑選了近3年以來近百家典型IT企業(yè)的PHP面試筆試真題,這些企業(yè)涉及業(yè)務包括系統(tǒng)軟件、搜索引擎、電子商務、手機APP、安全軟件等,所選面試筆試真題非常具有代表性與參考性。同時,本書對這些題目進行了合理的劃分與歸類,并且對其進行了庖丁解牛式的分析與講解,針對試題中涉及的部分重難點問題,本書都進行了適當?shù)財U展與延伸,力求對知識點的講解清晰而不紊亂,全面而不啰嗦,不僅如此,本書除了對PHP的基礎語言知識進行深度剖析以外,還針對數(shù)據(jù)庫、設計模式等相關知識的筆試面試做了非常詳細的介紹。讀者通過本書不僅能夠獲取到求職的知識,同時還可以更有針對性地進行求職準備,*終能夠收獲一份滿意的工作。
《PHP程序員面試筆試寶典》是一本計算機相關專業(yè)畢業(yè)生面試筆試的求職用書,同時也適合期望在計算機軟、硬件行業(yè)大顯身手的計算機愛好者閱讀。本書起于PHP面試筆試,但收獲的不止面試筆試,還有更多的PHP實用操作技能。書中附有大量面試筆試真題,讓讀者能夠*大限度地提升應試技能。
前言
上篇:面試筆試經(jīng)驗技巧篇
經(jīng)驗技巧1 如何巧妙地回答面試官的問題2
經(jīng)驗技巧2 如何回答技術性的問題3
經(jīng)驗技巧3 如何回答非技術性問題4
經(jīng)驗技巧4 如何回答快速估算類問題5
經(jīng)驗技巧5 如何回答算法設計問題6
經(jīng)驗技巧6 如何回答系統(tǒng)設計題8
經(jīng)驗技巧7 如何解決求職中的時間沖突問題11
經(jīng)驗技巧8 如果面試問題曾經(jīng)遇見過,是否要告知面試官12
經(jīng)驗技巧9 在被企業(yè)拒絕后是否可以再申請12
經(jīng)驗技巧10 如何應對自己不會回答的問題13
經(jīng)驗技巧11 如何應對面試官的“激將法”語言13
經(jīng)驗技巧12 如何處理與面試官持不同觀點這個問題14
經(jīng)驗技巧13 什么是職場暗語14
經(jīng)驗技巧14 如何進行自我介紹?18
經(jīng)驗技巧15 如何克服面試中緊張的情緒?19
經(jīng)驗技巧16 如何準備集體面試?21
經(jīng)驗技巧17 如何準備電話面試?23
經(jīng)驗技巧18 簽約和違約需要注意哪些事情?24
下篇:面試筆試技術攻克篇
第1章 PHP基礎知識29
1.1 PHP語言29
1.1.1 PHP與ASP、JSP有什么區(qū)別?29
1.1.2 PHP與HTML有什么區(qū)別?31
1.1.3 PHP的優(yōu)點是什么?32
1.1.4 PHP的輸出語句有哪些?33
1.1.5 如何區(qū)分單引號與雙引號?35
1.1.6 什么是XML?37
1.2 面向?qū)ο蠹夹g40
1.2.1 面向?qū)ο笈c面向過程有什么區(qū)別?40
1.2.2 面向?qū)ο蟮奶卣魇鞘裁矗?1
1.2.3 面向?qū)ο蟮拈_發(fā)方式有什么優(yōu)點?41
1.2.4 類與對象的區(qū)別是什么?41
1.2.5 PHP5 中魔術方法有哪些?43
1.2.6 值傳遞與引用傳遞有什么區(qū)別?51
1.2.7 什么是對象克?52
1.2.8 什么是延遲靜態(tài)綁定?56
1.2.9 作用域范圍有哪幾種?57
1.2.10 什么是構(gòu)造函數(shù)?什么是析構(gòu)函數(shù)?58
1.2.11 什么是繼承?60
1.2.12 抽象類與接口有什么區(qū)別與聯(lián)系?63
1.2.13 什么是多態(tài)?65
1.3 關鍵字67
1.3.1 final有什么作用?67
1.3.2 finally有什么作用?68
1.3.3 assert有什么作用?69
1.3.4 static有什么作用?70
1.3.5 global有什么作用?72
1.3.6 this、self和parent的區(qū)別是什么?73
1.3.7 include與require有什么區(qū)別?75
1.3.8 break、continue與return有什么區(qū)別與聯(lián)系?77
1.3.9 switch有什么作用?79
1.4 常量與變量81
1.4.1 什么是常量?81
1.4.2 什么是變量?84
1.4.3 如何判斷變量是否存在、是否為非空字符或非零?87
1.4.4 變量的作用域范圍有哪幾種?87
1.4.5 如何對變量進行引用?89
1.5 數(shù)據(jù)類型90
1.5.1 基本數(shù)據(jù)類型有哪些?90
1.5.2 如何進行類型轉(zhuǎn)換?92
1.6 運算符93
1.6.1 運算符的種類有哪些?93
1.6.2 ++與—的含義是什么?100
1.7 字符串101
1.7.1 字符串處理函數(shù)有哪些?101
1.7.2 ==與===有什么區(qū)別?106
1.8 正則表達式106
1.9 函數(shù)111
1.9.1 傳值和引用的區(qū)別是什么?111
1.9.2 什么是默認參數(shù)?114
1.9.3 什么是函數(shù)返回值?114
1.9.4 如何進行函數(shù)調(diào)用?115
1.10 數(shù)組117
1.10.1 如何進行數(shù)組的定義與聲明?117
1.10.2 什么是多維數(shù)組?121
1.10.3 數(shù)組函數(shù)有哪些?124
1.11 文件管理130
1.11.1 有哪些文件操作?130
1.11.2 涉及文件操作的函數(shù)有哪些?134
1.12 異常處理與錯誤處理137
1.12.1 什么是異常處理與錯誤處理?137
1.12.2 error_reporting()的作用是什么?138
1.12.3 如何進行異常捕捉與處理?139
1.12.4 如何實現(xiàn)自定義的異常類?141
1.13 內(nèi)存管理141
1.13.1 什么是內(nèi)存管理?141
1.13.2 什么是垃圾回收?142
1.14 Redis143
1.14.1 什么是Redis?143
1.14.2 Redis的常見問題有哪些?145
1.15 Memcache147
第2章 PHP Web與框架153
2.1 PHP Web153
2.1.1 Session與Cookie的區(qū)別是什么?153
2.1.2 GET和POST有什么區(qū)別?158
2.1.3 如何預防各類安全性問題?160
2.1.4 HTTP狀態(tài)碼的含義是什么?161
2.1.5 utf-8編碼需要注意哪些問題?164
2.1.6 如何進行網(wǎng)站的優(yōu)化?165
2.2 模板166
2.3 框架167
2.3.1 什么是MVC?167
2.3.2 PHP的開發(fā)框架有哪些?168
2.3.3 什么是CI框架?168
2.4 JavaScript、HTML、CSS等171
第3章 PHP進階知識173
3.1 時間和日期管理173
3.1.1 如何輸出年-月-日?173
3.1.2 如何輸出時-分-秒?174
3.1.3 如何輸出閏年-星期-天?175
3.1.4 PHP相關的日期函數(shù)有哪些?176
3.2 緩存179
3.3 文件管理180
3.3.1 PHP中文件操作函數(shù)有哪些?180
3.3.2 如何進行文件上傳?183
3.3.3 如何進行文件下載?185
3.3.4 如何進行版本管理?186
3.4 驗證碼187
第4章 設計模式188
4.1 常見的設計模式有哪些?188
4.2 什么是單例模式?190
4.3 什么是工廠模式?191
4.4 什么是觀察者模式?192
第5章 數(shù)據(jù)庫196
5.1 數(shù)據(jù)庫基礎知識196
5.1.1 SQL語言的功能有哪些?197
5.1.2 內(nèi)連接與外連接有什么區(qū)別?199
5.1.3 什么是事務?200
5.1.4 什么是存儲過程?它與函數(shù)有什么區(qū)別與聯(lián)系?202
5.1.5 一二三四范式有何區(qū)別?202
5.1.6 什么是觸發(fā)器?204
5.1.7 什么是游標?205
5.1.8 如果數(shù)據(jù)庫日志滿了,那么會出現(xiàn)什么情況?206
5.1.9 UNION和UNION ALL有什么區(qū)別?206
5.1.10 什么是視圖?207
5.1.11 什么是數(shù)據(jù)庫三級封鎖協(xié)議?207
5.1.12 索引的優(yōu)缺點208
5.2 MySQL基礎知識209
5.2.1 PHP操作MySQL的函數(shù)有哪些?210
5.2.2 PHP連接MySQL的方法是什么?211
5.2.3 MySQLi訪問數(shù)據(jù)庫的方法214
5.2.4 如何進行MySQL操作?218
5.2.5 MySQL支持哪些字段類型?227
5.2.6 什么是索引?230
5.2.7 什么是數(shù)據(jù)庫引擎?232
5.2.8 如何進行數(shù)據(jù)庫分頁?233
5.2.9 什么是數(shù)據(jù)庫權限?237
5.2.10 PHP Web訪問MySQL方法是什么?238
5.2.11 如何高效操作MySQL?240
5.3 MySQL高級管理240
5.3.1 如何對MySQL進行優(yōu)化?240
5.3.2 如何進行數(shù)據(jù)庫優(yōu)化?244
5.3.3 如何進行數(shù)據(jù)庫操作優(yōu)化?247
5.3.4 如何進行數(shù)據(jù)庫表優(yōu)化?249
第6章 操作系統(tǒng)255
6.1 進程管理255
6.1.1 進程與線程有什么區(qū)別?255
6.1.2 線程同步有哪些機制?256
6.1.3 內(nèi)核線程和用戶線程的區(qū)別256
6.2 內(nèi)存管理257
6.2.1 內(nèi)存管理有哪幾種方式?257
6.2.2 什么是虛擬內(nèi)存?258
6.2.3 什么是內(nèi)存碎片?什么是內(nèi)碎片?什么是外碎片?258
6.2.4 虛擬地址、邏輯地址、線性地址、物理地址有什么區(qū)別?259
6.2.5 Cache替換算法有哪些?259
6.3 用戶編程接口261
6.3.1 庫函數(shù)調(diào)用與系統(tǒng)調(diào)用有什么不同?261
6.3.2 靜態(tài)鏈接與動態(tài)鏈接有什么區(qū)別?261
6.3.3 靜態(tài)鏈接庫與動態(tài)鏈接庫有什么區(qū)別?262
6.3.4 用戶態(tài)和核心態(tài)有什么區(qū)別?262
6.3.5 用戶棧與內(nèi)核棧有什么區(qū)別?263
第7章 網(wǎng)絡264
7.1 TCP/IP264
7.1.1 協(xié)議264
7.1.2 TCP/IP265
7.1.3 常見筆試題265
7.2 RESTful架構(gòu)風格266
7.2.1 REST266
7.2.2 約束條件267
7.2.3 常見筆試題267
7.3 HTTP268
7.3.1 URI和URL268
7.3.2 HTTP協(xié)議269
7.3.3 HTTP報文271
7.3.4 HTTP首部272
7.3.5 緩存273
7.3.6 常見筆試題275
7.4 TCP276
7.4.1 連接管理276
7.4.2 確認應答278
7.4.3 窗口控制280
7.4.4 重傳控制281
7.4.5 常見筆試題281
7.5 HTTPS282
7.5.1 加密283
7.5.2 數(shù)字簽名283
7.5.3 數(shù)字證書284
7.5.4 安全通信機制284
7.5.5 常見筆試題286
7.6 HTTP/2.0286
7.6.1 二進制分幀層287
7.6.2 多路通信287
7.6.3 請求優(yōu)先級288
7.6.4 服務器推送288
7.6.5 首部壓縮289
7.6.6 常見筆試題289
第8章 大數(shù)據(jù)290
8.1 從大量的URL中找出相同的URL290
8.2 求高頻詞290
8.3 找出訪問百度最多的IP291
8.4 在大量的數(shù)據(jù)中找出不重復的整數(shù)292
8.5 在大量的數(shù)據(jù)中判斷一個數(shù)是否存在292
8.6 如何查詢最熱門的查詢串293
8.7 統(tǒng)計不同電話號碼的個數(shù)294
8.8 從5億個數(shù)中找出中位數(shù)295
8.9 按照query的頻度排序296
8.10 找出排名前500的數(shù)297
附錄 真題及答案298
真題1298
真題2300
真題3303
真題1答案305
真題2答案306
真題3答案308