『壹』 面試高級php工程師,一般會問到哪些問題
高並發大訪問量的mysql優化,伺服器優化?
欄位建索引、主從資料庫、讀寫分離、表分區、負載均衡。
linux的慢查詢日誌會記錄mysql的超時查詢sql語句,定期察看進行優化。
2.大訪問量下秒殺模塊程序怎麼設計,如果使用mysql會有多賣的情況,就是訂單超過庫存。
將訂單數據緩存到內存,如果用資料庫直接崩掉,毫無懸念的。
3.緩存的使用
能用靜態的用靜態,不能靜態的用內存緩存,例如memcache、redis,不能緩存的用資料庫。
4.session可不可以跨域?怎麼跨域?
將PHP session機制重寫(PHP提供),將session存儲在memcache或者資料庫就可以跨域了。
另外session能以三種方式存儲,文件、資料庫、緩存。
5.了不了解非關系型資料庫?
mongodb
6.會不會寫shell腳本以及linux的操作
還會問一下時下流行的東西,比如做沒做過微信開發,例如微信支付開發、APP移動開發,等等問題。
問的核心東西都是圍繞這些轉的,如果有筆試會讓你寫sql,php功能(例如冒泡排序等排序),還有邏輯題。
我當初面試了很多,這是一個我的面試經驗的總結,純手打忘採納。
『貳』 PHP中高級面試題 – 第一天
一、寫一個函數,獲取一篇文章內容中的全部圖片,並下載
二、什麼是 CSRF 攻擊?XSS 攻擊?如何防範?
CSRF:跨站請求偽造,可以通過通過判斷來源和加 Token 的方式來防範。
XSS:跨站腳本攻擊,可以通過對內容轉義和過濾來防範,還有 CSP
三、應用中我們經常會遇到在 user 表隨機調取 10 條數據來展示的情況,簡述你如何實現該功能。
四、MYSQL 中主鍵與唯一索引的區別
主鍵:絕對不能有空值。唯一索引:可以有空值
五、http 與 https 的主要區別
關鍵是 S 上。簡而言之,https 建立連接後要先把 SSL 的證書發下去,有了公鑰和私鑰,就可以解密了。
六、兩台 mysql 伺服器,其中一台掛了,怎麼讓業務端無感切換,並保證正常情況下講台伺服器的數據是一致的
不是核心業務的話,先停寫,把備機拉起來,查看兩台機器的日誌,進行數據補償,開寫。
如果是核心業務的話,現在所有的操作都在正常的狀態機器上。把好的這台機器的備機拉起來,當主機。
以上全是應急操作。實際上資料庫的容災設計要復雜得多。
面試官要是問你,備機的數據不一致怎麼辦,你要勇敢懟回去,你們每秒多少寫入操作。按照百萬級表,每秒 1000 的寫入效率,正常的設計是,分布在 2 台機器上每台 500。這個級別的數據同步,出現差異的概率 可以忽略不計的。有一台出現問題,另一台也可以抗住。
(正常的操作,還是先停寫,等數據一致,切換,開寫。我們公司搞這些切換都是在凌晨 4.00 左右,核心業務的每秒寫操作,只有十幾個。前後耽擱不到 20 秒)。
七、10 瓶水,其中一瓶有毒,小白鼠喝完有毒的水之後,會在 24 小時後死亡,問:最少用幾只小白鼠可以在 24 小時後找到具體是哪一瓶水有毒。
答案:四隻
二進制問題。薛定諤的老鼠。
一隻老鼠有兩個狀態,死活,對應 01。假設老鼠的個數為 A,則有 2^A>=10; A=4;
思路很簡單,十瓶葯編號:0,1,10,11….1001;
0 不喝。第一隻老鼠喝所有個位是 1 的:13579,第二隻喝十位是 1 的,第三隻和百位是 1 的,第四隻喝千位是 1 的。
24 小時後,看下死了的是 1,活著的是 0。按老鼠的順序乖乖站好…… 假如第一隻和第三隻死了,那就是 0101,就是 5 有問題。
『叄』 在面試PHP工程師時會被問哪些問題
面試官在面試求職的PHP工程師時所問的問題千奇百怪,但由於他們需要的是一個PHP工程師,所以他們提問的問題一般不會偏離以下幾個角度:
技術線(偏深度):
1. 基礎知識,比如數據結構,多線程,I/O,Http協議等。
2. 語言深度,比如PHP的運行機制,性能優化,APC(以及其原理等)。
3. 源碼閱讀,比如看過哪些框架,其中的機制是怎麼樣的,往細了問。
4. 知識寬度,靜態語言,比如C、Java等,我始終覺得只會一門語言不是什麼好事情。
5. 項目經驗,做過什麼,是否復雜,負責什麼,做了什麼。
業務線(偏能力):
1. 業務能力,也就是之前做過的項目(擔任的角色,負責的部分)。
2. 溝通能力,這一點能從溝通中就看出來。
3. 主動性,之前主動推動的事物等等,哪怕是一個小的點也可以。
4. 抗壓能力,之前做過的項目中去挖掘細節。
5. 技術寬度,了解不一定要深入,一般會問一些比較泛的,比如多語言,Linux操作,HTTP協議等。
『肆』 php技術面試一般都是什麼問題
可能會問以下問題:(這是一個多元的問題,這和你應聘的公司規模,行業,技術層次有一定的關系)
1、你會使用什麼框架?
2、你知道PHP有哪些框架?
3、你知道或使用過哪些PHP庫?
4、你用PHP寫過框架嗎?
5、你有作品嗎?
6、你怎麼調試PHP?
7、你知道設計模型嗎?
8、說一下PHP個版本的差異。
9、說一下某函數的具體作用。
10、給你一個演算法讓你用PHP實現。
... ...
總之有很多問題可能是意料不到的,所以建議你去牛客網多練習一下或者去海投簡歷體驗應聘過程,失敗沒什麼大不了的。
『伍』 30道2020年PHP面試題整理(附帶答案)
整理的一些面試題如有錯誤可評論區指出。
1. 使用過swoole嗎,怎麼設置心跳?
2. 如果訪問量達到100萬,選擇緩存,你會選擇redis還是memchache?選擇memchace,因為它只有一種類型,key-value,而redis的類型比memchace多,導致它的並發沒有memchace好。
3. psr2和psr4的區別?psr指的是php standards recommendation,意思是PHP標准建議。
psr2:編碼風格向導
psr4:自動載入。
4. mb_strlen和str_len的區別?
5. 下面會輸出什麼?
6. 使用二分法查找50出現的位置?
7. 將上面的數組進行翻轉,不使用內置函數?數組為:$arr = [1,3,5,12,34,45,50];
8. nginx負載均衡的演算法有round robin、weight、IP_hash、url_hash、fair等,解釋每種演算法。
9. 優化下面的代碼。
10. 實現一個單列模式。
11. 簡述一下觀察者模式。
12. 如何獲取請求頭的信息。
13. 高訪問量的網站優化策略包括硬體和軟體優化。
14. WebSocket原理。
15. Redis默認有16個庫。
16. Linux進程之間通信方式有管道、信號量、消息隊列、信號、共享內容和套接字。
17. Git合並分支的命令。
18. Laravel外面引入路由的步驟。
19. 使用redis隊列防止商品超賣。
20. 請求中使用隊列的場景。
21. 單引號和雙引號的區別。
22. 微信支付、支付寶回調在伺服器崩潰時的解決方法。
23. 輸入網址回車的過程。
24. PHP常見字元串處理函數和數組。
25. 資料庫優化策略包括表設計、欄位選擇、引擎選擇、SQL優化、減少資料庫訪問和硬體優化。
26. 減少資料庫訪問次數的原因。
27. require和include的區別。
28. PHP7和PHP5的區別。
29. 資料庫優化策略。
30. Laravel保存session的步驟。
如果您對PHP後端技術或PHP架構技術感興趣,可以加入官方群,群內有管理整理的知識體系、源碼和學習視頻等資料,免費領取。這門課程深度對標騰訊T3-T4標准,適合1-5年的PHP開發者進階中高級、架構師,為自己增值漲薪。加入BAT特訓營可獲得內推大廠名額以及GO語言學習許可權。