php面試主要有這幾點:
項目經驗,以及對項目開發的理解(如何下手一個新項目)
php語言的掌握程度
數據庫相關知識
nginx相關使用
緩存方面知識(redis、memcached)
高并發處理經驗以及手段
linux基本操作和理解
git基本操作和理解
框架的使用經驗( 一般為主流框架,如 laravel 和 tp5 )
網絡安全相關問題
攻擊以及防護相關問題
其他一些雜七雜八的東西,比如 composer 、psr4標準等
上面幾點是大概率會被問到的問題,也幾乎只會問到這些范圍內的問題,我簡單展開下每個問題,但是具體的進階,各位需要面試的話自己看。
1.他其實就像想知道你是否熟悉項目開發流程以及有獨立完成項目的能力,或者有足夠的開發經驗。
項目開發流程:產品需求分析 -》產品原型分析 -》設計表結構 -》選擇開發框架 -》設計業務模塊 -》定義開發接口 -》 開始搬磚。
2.php的基礎掌握。我們知道php是腳本語言,那肯定會問一些腳本語言的問題,比如腳本語言和編譯語言的區別,什么是腳本語言,他的執行方式,或者更牛逼一點會問PHP語言的執行過程,其實就是想問你了解不了解 opcode。
雖然我們大多數phper,包括我,大部分時間都是在面向過程編程,因為框架把面向對象的事情都做了,但是面試官還是會裝逼的問一下你,是否了解面向對象編程(靜態方法、變量權限、抽象類、接口、繼承、克隆、魔術方法等)。
命名空間、正則匹配的一些基本知識也是會問一下的。
還有什么單引號雙引號區別,get和post請求、session原理;
3.沒什么好說的,該看的都要看(三番式、索引類型以及特點、查詢優化、事務處理、主從同步、多庫聯合、鎖處理);
4.ngixn的話,只要會簡單的配置以及反向代理,一般就ok了;
5.redis 有哪幾種數據類型,分別是什么,還有高并發情況下的的雪崩問題如何解決(解決方案是 加鎖 )以及redis持久化原理(快照(RDB文件)和追加式文件(AOF文件));
6.事實上,我所在的幾家公司,高并發的場景都很少,我相信不部分公司其實并沒有太高的并發的情況,但是這卻是個必問的問題,可能覺得如果不問不夠專業吧。
什么是高并發?它通常是指,通過設計保證系統能夠同時并行處理很多請求。
**高并發相關指標有響應時間(Response Time),吞吐量(Throughput),每秒查詢率QPS(Query Per Second),并發用戶數等。**
我們知道php是單線程的,現在由于php-fpm的加持,fpm幫我們維護了一個線程池,負責php線程的調度執行,所以每一段程序執行的效率,直接影響的高并發的指標。通常的效率瓶頸有這么幾種,復雜的算法、大的循環、數據庫慢查詢等。
現實情況中,比較多出問題是出在數據庫這邊,通常的解決方法是,主從同步,分布式部署以及對數據進行緩存。
如果流量太大,一臺服務器不夠用也要進行多臺服務器分布式部署。這里涉及負載均衡的配置,以及nginx幾種負載均衡的算法。
7.不說什么了,天天用就會了(ls、top、ps、du、df 。。。。)。
8.git的基本使用方法,沒什么說的。
9.現在的主流框架越來越像,tp5的涉及理念明顯是借鑒了laravel啊,什么依賴注入、容器、合約、服務提供者、門面、中間件、restful api 等等,了解一下,用一用就好了。
10\. https(http+ssl)、非對稱加密(密文、私鑰、公鑰)、加密算法,這些在開發支付時需要用的到。
11.cc攻擊(ddos的一種)、ddos攻擊,防護方法 :
cc:服務器垂直擴展和水平擴容、 數據緩存、 頁面靜態化、 用戶級別的調用頻率限制、 IP限制
ddos: 砸錢!(買防護、買帶寬)
12.想什么composer 、 psr4在框架部分因該會問到,主要是想問php如何引入第三的程序包(這也是我為什么越來越不喜歡不喜歡php的原因,引個包命名空間煩死了,當然了,php是世界上最好的語言!);
作者:MEMO社區
鏈接:[https://www.jianshu.com/p/15b5f9d69984](https://www.jianshu.com/p/15b5f9d69984)
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
- 簡介
- 前端
- html
- css
- css選擇器
- fiex布局
- 盒裝模型
- javascript
- 原型鏈
- 作用域
- 事件綁定
- dom
- bom
- jquery
- 選擇器
- jquery事件綁定
- layui
- bootstrap
- vue
- 路由(Vue Router)
- Vue CLI
- axios
- vant
- 打包部署
- 自定義組件
- 一些前端效果
- 點擊復制功能
- 后端
- php框架
- thinkphp
- 隱藏index.php
- thinkphp實現多表查詢
- thinkphp使用ajax單圖上傳
- thinkphp使用ajax圖集上傳
- thinkphp使用ajax查詢是否重名
- thinkphp使用ajax表單上傳
- where多個條件
- 郵件發送功能
- thinkphp短信寶發送短信
- tp5事務
- validate驗證二維數組
- yii2
- yii配置郵件
- yii的CRUD操作
- layui中兩種展示表單的方式
- laravel
- laravel實例
- laravel登錄
- laravel前端注冊
- laravel列表
- laravel刪除
- laravel編輯
- laravel新增
- Laravel 目錄結構
- Laravel 路由
- Laravel 控制器
- Laravel 模型讀操作
- Laravel 模型增、刪、改操作
- Laravel 中間件
- Laravel 視圖
- Laravel ,YII,thinkphp 框架的區別
- 會話控制
- session
- session存入redis
- session創建
- session刪除
- cookie
- 面向對象
- 三大特性
- 魔術方法
- 修飾符
- obj變量
- php
- php版本差異
- php7與php5的區別
- PHP 內存溢出問題
- 數據類型
- PHP 垃圾回收機制(GC)
- 文件目錄操作
- php函數
- 字符串相關函數
- 數組相關函數
- 超全局數組與超全局變量
- php魔術方法
- 引用變量
- php類庫
- 1.根據隨機數生成6位密鑰
- 2.獲取客戶端IP地址
- 3.多維數組變成一維數組
- 4.判斷是否是微信瀏覽器
- 5.判斷是否是移動端
- 6.隱藏手機號碼156***8956
- 7.隱藏郵箱 9533*****@qq.com
- 8.數組排序
- 9.添加操作日志
- 10.無線分類按子分類排序
- 11.從數組中刪除空白的元素
- 12.字符串相關類庫
- curl模擬post/get請求
- 替換中間四位數
- PHP地理位置計算
- 生成唯一訂單號
- 阿拉伯數字轉化為大寫
- 時間戳轉為中文時間
- php獲取本年、本月、本周時間戳和日期格式的實例代碼(分析)
- 去除數據庫的數據空格
- 壓縮Zip文件和文件打包下載
- PHP常用六大設計模式
- 單例模式
- 工廠模式
- 注冊樹模式
- 策略模式
- 適配器模式
- 觀察者模式
- 數據庫
- 留言板功能
- 所了解的數據庫
- sql server
- Memecached
- MongoDB
- mysql
- 存儲引擎(MyISAM與InnoDB)
- 庫表CRUD操作
- 索引
- 事務
- mysql常用命令
- 悲觀鎖和樂觀鎖
- 數據庫優化
- 大流量大并發優化
- Redis
- redis相關考點
- 開啟redis
- redis緩存cache
- redis存儲session
- redis限制提交次數
- 緩存雪崩,擊穿,穿透(copy)
- redis數據結構及使用場景
- 消息隊列
- Redis、Memecached 區別?
- phpstudy升級mysql版本
- 分表
- 讀寫分離
- linux
- 開發環境搭建
- mysql配置
- centos7(lnmp)環境搭建
- ubuntu(lnmp)環境搭建
- Nginx
- nginx四個基本功能
- nginx重啟出錯
- Nginx 的反向代理
- 用戶用戶組
- 虛擬機安裝
- linux常用命令
- chmod命令
- ubuntu下apt-get 命令
- 釋放內存
- 云鎖安裝及使用
- 大部隊搭建
- Centos開啟端口命令
- Centos禁止root登錄
- Centos7修改22端口
- Rsync備份
- 開啟端口
- 微信開發
- 輔助開發
- 網站SEO
- TCP/IP協議
- HTTP 請求全過程
- http狀態碼
- http和https的區別
- http請求三部分
- tcp三次握手
- 三次握手的作用
- tcp四次揮手
- CMS
- 織夢CMS
- 帝國cms
- wordpress
- 禪知cms
- 八大接口
- 微信支付
- 支付寶支付
- 郵件
- 微博登錄
- QQ登錄
- 快遞
- 天氣
- 常見算法
- 快速排序
- 冒泡排序
- 選擇排序
- 插入排序
- 二分查找
- 希爾排序
- V2Ray搭建
- AJAX
- GIT
- RBAC用戶權限管理數據庫設計
- 開發中遇到的一些問題
- 資料購買
- 建立ssr服務器
- 簡單建
- 申請并使用ssl證書
- 正則表達式手冊
- phpstorm
- 注冊碼
- 備用注冊碼
- 網站設計概要
- 網站相關功能代碼
- 權限(RBAC/AUTH)
- 無限級分類
- 記住登錄狀態
- email找回密碼
- 企業網站開發概要
- 網站后臺
- 文章管理
- 欄目管理 CRUD 上級欄目
- 欄目管理
- 友情鏈接
- 操作日志
- 登錄注冊
- 權限管理
- 網站配置
- 網站前臺
- 首頁
- 新聞動態
- 聯系
- 案例
- 關于
- 單店鋪商城開發概要
- 面試準備
- 有意思的面試題
- 拉鉤面試要求
- 慕課面試視頻知識總結
- 面試題匯總
- 題目1
- 一些工作的要求
- 前端炒的
- 面試項目介紹
- MySQL面試100 問
- 術語庫
- redis相關
- php操作redis
- redis消息隊列(異步)
- redis消息隊列(同步)