最近社區裏面有一篇文章引發了最多程序猿的關注,Laravel、PHPer 面試可能會遇到的問題,看評論區很多小夥伴們被難倒,對於一些問題一樣難倒了我(其實有不少啦),趁着週末有空,又總結梳理了一遍,順便來答一波題。因爲我的技術水平有限,答案或許會有誤差,歡迎你們指正。php
PHP7 和 PHP5 的區別,具體多了哪些新特性?html
性能提高了兩倍mysql
結合比較運算符 (<=>)laravel
標量類型聲明git
返回類型聲明github
try...catch
增長多條件判斷,更多 Error 錯誤能夠進行異常處理面試
匿名類,如今支持經過new class 來實例化一個匿名類,這能夠用來替代一些「用後即焚」的完整類定義redis
…… 瞭解更多查看文章底部連接 PHP7 新特性sql
爲何 PHP7 比 PHP5 性能提高了?數據庫
變量存儲字節減少,減小內存佔用,提高變量操做速度
改善數組結構,數組元素和 hash 映射表被分配在同一塊內存裏,下降了內存佔用、提高了 cpu 緩存命中率
改進了函數的調用機制,經過優化參數傳遞的環節,減小了一些指令,提升執行效率
服務提供者是什麼?
服務提供者是全部 Laravel 應用程序引導啓動的中心, Laravel 的核心服務器、註冊服務容器綁定、事件監聽、中間件、路由註冊以及咱們的應用程序都是由服務提供者引導啓動的。
IoC 容器是什麼?
IoC(Inversion of Control)譯爲 「控制反轉」,也被叫作「依賴注入」(DI)。什麼是「控制反轉」?對象 A 功能依賴於對象 B,可是控制權由對象 A 來控制,控制權被顛倒,因此叫作「控制反轉」,而「依賴注入」是實現 IoC 的方法,就是由 IoC 容器在運行期間,動態地將某種依賴關係注入到對象之中。
其做用簡單來說就是利用依賴關係注入的方式,把複雜的應用程序分解爲互相合做的對象,從而下降解決問題的複雜度,實現應用程序代碼的低耦合、高擴展。
Laravel 中的服務容器是用於管理類的依賴和執行依賴注入的工具。
Facades 是什麼?
Facades(一種設計模式,一般翻譯爲外觀模式)提供了一個"static"(靜態)接口去訪問註冊到 IoC 容器中的類。提供了簡單、易記的語法,而無需記住必須手動注入或配置的長長的類名。此外,因爲對 PHP 動態方法的獨特用法,也使測試起來很是容易。
Contract 是什麼?
Contract(契約)是 laravel 定義框架提供的核心服務的接口。Contract 和 Facades 並無本質意義上的區別,其做用就是使接口低耦合、更簡單。
依賴注入的原理?
這個就不解釋了吧,這是理解 IoC 容器的前提。
什麼是 Composer, 工做原理是什麼?
Composer 是 PHP 的一個依賴管理工具。工做原理就是將已開發好的擴展包從 packagist.org composer 倉庫下載到咱們的應用程序中,並聲明依賴關係和版本控制。
Redis、Memecached 這二者有什麼區別?
Redis 支持更加豐富的數據存儲類型,String、Hash、List、Set 和 Sorted Set。Memcached 僅支持簡單的 key-value 結構。
Memcached key-value存儲比 Redis 採用 hash 結構來作 key-value 存儲的內存利用率更高。
Redis 提供了事務的功能,能夠保證一系列命令的原子性
Redis 支持數據的持久化,能夠將內存中的數據保持在磁盤中
Redis 只使用單核,而 Memcached 可使用多核,因此平均每個核上 Redis 在存儲小數據時比 Memcached 性能更高。
Redis 如何實現持久化?
RDB 持久化,將 redis 在內存中的的狀態保存到硬盤中,至關於備份數據庫狀態。
AOF 持久化(Append-Only-File),AOF 持久化是經過保存 Redis 服務器鎖執行的寫狀態來記錄數據庫的。至關於備份數據庫接收到的命令,全部被寫入 AOF 的命令都是以 redis 的協議格式來保存的。
什麼是索引,做用是什麼?常見索引類型有那些?Mysql 創建索引的原則?
索引是一種特殊的文件,它們包含着對數據表裏全部記錄的引用指針,至關於書本的目錄。其做用就是加快數據的檢索效率。常見索引類型有主鍵、惟一索引、複合索引、全文索引。
索引建立的原則
最左前綴原理
選擇區分度高的列做爲索引
儘可能的擴展索引,不要新建索引
高併發如何處理?
使用緩存
優化數據庫,提高數據庫使用效率
負載均衡
PHP 的設計模式就很少講了,可是 SOLID 設計原則是每一位 PHPer 都必需要掌握的。
遺留又補充了一些 PHPer 的常見面試題留給大神們解答。
分庫分表怎麼設計
如何處理 MySQL 死鎖?
談談你對閉包的理解
PHP 內存回收機制
如何解決 PHP 內存溢出問題
數據庫優化的方法
簡述 Laravel 的運行原理
Laravel 路由實現原理
cookie 和 session 區別,session 保存在服務器的哪裏?服務端是如何獲取客戶端的cookie?
服務器集羣搭建、負載均衡、反向代理
服務器經常使用命令
PS: PHPer 面試關注的技術實力僅僅只是一部分,還有一部分會關注你的內驅力、思考力以及表達能力。其實關注最多的是你是不是妹子、你的顏值還有你是否單身!!!
答案放在了 GitHub 上,歡迎你們 Stat 和 PR.
傳送門:https://github.com/todayqq/ca...
碼字不易,留下你的讚唄
歡迎你們加個人微信:JINCHAOCHAO0220
,期待和你一塊兒交流、一塊兒成長!