1, session和cookie的區別php
Session是在服務端保存的一個數據結構,用來跟蹤用戶 的狀態,這個數據能夠保存在集羣、數據庫、文件中前端
Cookie是客戶端保存用戶信息的一種機制,用來記錄用戶的一些信息,也是實現Session的 一種方式。mysql
2, PHP7用了嗎,瞭解哪些新特性nginx
PHP7在性能方面實現跨越式的提高,新的操做符,統一變量語法等等laravel
3, 魔術變量git
問了__dir__表明的含意,這個是回答文件所在的目錄面試
4, 魔術方法redis
這算是常常會問到的一個題目了,經常使用的都記得,突然問到__invoke()就懵了
__construct(), __destruct(), __call(), __callStatic() , __get(), __set(), __isset(), __unset(), __sleep(), __wakeup(), __toString(), __invoke(), __set_state(), __clone() 和 __debugInfo()算法
1, 棧數據結構sql
只要能用代碼實現出棧數據結構便可
2, 冒泡排序
只要能用代碼實現出冒泡排序便可
3, 徹底二叉樹和滿二叉樹的區別
只有最下面的兩層結點度可以小於2,而且最下面一層的結點都集中在該層最左邊的 若干位置的二叉樹才爲徹底二叉樹
而一棵深度爲h且有 2^h-1個結點的二叉樹即爲 滿二叉樹
1, Laravel和ThinkPHP有什麼區別,對於laravel有什麼要吐槽的
我從路由,中間件到控制器,數據訪問,視圖等層面上介紹了不一樣
吐槽的話可能相對於一些項目,laravel有點‘重’
2, 有用composer發佈過本身的包嗎? (基於 Composer 的 PHP 模塊化開發)
我回答沒有,只是瞭解過
面試官就說他們的框架是本身在 Discuz的基礎上二次開發的框架,在他優秀的基礎上把composer依賴管理也都引進blabla
3, 談談對於MVC的理解
結合項目說明模板,視圖,控制器之間的關係和基本的構成
1, XSS 跨站腳本攻擊
2, DDOS 流量攻擊
3, CSRF 跨站請求僞造攻擊
4, SQL注入
在前端表單用戶輸入進行控制或限制
有後端傳參數和數據時進行過濾等等
1, 在項目中如何解決併發的問題
個人解決辦法先是前端控制有效請求,例如一分鐘才正常請求一次
接着 後端一樣過慮無效請求,接着接操做放進隊列中實現
有個面試官問,你這個隊列是阻塞的嗎,若是真的同時兩個用戶購買,兩個用戶等待 完成,他們仍是用同一個線程完成,有沒有考慮 用其它方式實現
我說無,他就說可 以用鎖的機制,第二個等待第一個完成,一個接一個
2, 微信支付具體實現流程
1)H5頁面發起支付請求,請求生成支付訂單
2)調用統一下單API,生成預付單
3)生成JSAPI頁面調用的支付參數並簽名
4)微信瀏覽器自動調起支付 JSAPI接口支付
5)確認支付
6)異步通 知商戶支付結果,商戶收到通知返回確認信息
7)返回支付結果,展 示支付信息給用戶
3, 簡單實現登陸註冊功能
各個框架考慮的方面不同,這就按本身的理解寫出相應的代碼就好
4, 如何設計一個商城
我是先給本身限定了一個B2C的商城,而後從數據表開始,接着簡單 介紹前端和後端實現邏輯
mysql優化基本是重中之重了,尤爲考驗技術
1, InnoDB和MyISAM有什麼區別
InnoDB提供事務處理,行級鎖,支持外鍵,支持多種行格式
MyISAM只支持表級鎖,全文索引,堆表
2, 事務有哪幾個特性
原子性、一致性、隔離性、持久性
3, 事務的隔離級別
未提交讀、已提交讀、可重複讀、可串行化
4, 有個表字段的O_Id,OrderDate,OrderPrice,Customer這幾個,咱們但願查找訂單總 金額少於 2000 的客戶
SELECT Customer,SUM(OrderPrice) FROM Orders GROUP BY Customer HAVING SUM(OrderPrice)<2000
5, 查詢學生表的數據,大於六十的爲及格,反之不及格
select 分數,類別=Case WHEN 分數 >=60 THEN '及格' ELSE '不及格 ' END from 成績表
6, 查詢沒有學完全部課程的學生學號、姓名
SELECT a.SNO ,a.SNAME FROM student a WHERE a.`SNO` NOT IN ( SELECT b.`SNO` FROM SC b GROUP BY b.`SNO` HAVING COUNT(*) = ( SELECT COUNT(*) FROM course) );
1, "select * from student where name='red'","select * from student where name='blue'",優化語句
select name from student where name='red' union select name from student where name='blue'
若是用or條件, myisam表能用到索引, innodb不行。
innodb用UNION替換OR (適用於索引列)
2, 你通常都會怎麼優化數據庫
查詢緩存、EXPLAIN、(聯合)索引、使用固定長度靜態表
服務器怎麼作防禦
僅開放有限端口,限制登陸IP,限制登陸賬號
也是能夠定一本書的問題,能夠根據項目回答
Get和Post有什麼區別
Get的參數包含在URL,GET請求會被瀏覽器主動cache,是url編碼, 有字符限制參數爲ASCII字符
Post 經過request body傳遞參數,且 有多種編碼方式
設置nginx時php腳本請求是讓什麼處理
默認配置的是轉發到FastCGI處理
一、你用redis來緩存什麼數據
跟據項目來講本身緩存的一些常常要用到的數據
二、Redis怎麼作持久化,配置哪一種刷新頻率
配置aof持久化,用默認的每秒刷新aof文件
三、Redis是多線程嗎
單線程(我居然回答是多線程,233)
四、Redis怎麼配置一主多從,要多久
能夠用Redis官方集羣方案,具體沒有實踐過,可能要花幾周時間來 完成
有用過git嗎?當兩我的提交了錯誤代碼後,怎麼解決
用過git提交代碼,發生這種狀況能夠先將遠程的代碼git pull到本 地,而後將衝突的代碼或Git標記內容修改正確,而後從新提交代碼
1.爲何離職
機智回答,稍微提了一下公司或自身的事錢少事多家遠
2.你理想的團隊
對技術熱情,積極解決問題,共同合做
3.職業規劃
前端深刻,後端深刻,數據優化分析採集,服務器滲透blabla
4.想問的問題
通常都會問公司有什麼項目,技術架構,有無盈利等
不一樣公司技術棧不一樣,關心的點也不一樣,有點就會在隊列的問題上問具體阻塞時的解決方案 ,有的更多關注項目效率,有的還會關注服務器搭建,有無本身搭建框架和對於流行框架的瞭解 ,過程當中也許就能找到本身想要的發展方向
5天9家7offer,感受還行,面試時大多公司都會根據簡歷上的項目進行詳細的提問,面試時能看出技術上的廣度(經歷項目或技能多少),和技術的深度(數據優化,框架理解制做,服務器攻防滲透),但願你們也可以隨着項目的發展,不斷實踐學習技術,就醬。 (•ㅂ•)/♥ 共勉 ~
好了各位,以上就是這篇文章的所有內容了,能看到這裏的人呀,都是人才。以前說過,PHP方面的技術點不少,也是由於太多了,實在是寫不過來,寫過來了你們也不會看的太多,因此我這裏把它整理成了PDF和文檔,若是有須要的能夠
更多學習內容能夠訪問【對標大廠】精品PHP架構師教程目錄大全,只要你能看完保證薪資上升一個臺階(持續更新)
以上內容但願幫助到你們,不少PHPer在進階的時候總會遇到一些問題和瓶頸,業務代碼寫多了沒有方向感,不知道該從那裏入手去提高,對此我整理了一些資料,包括但不限於:分佈式架構、高可擴展、高性能、高併發、服務器性能調優、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql優化、shell腳本、Docker、微服務、Nginx等多個知識點高級進階乾貨須要的能夠免費分享給你們,須要的能夠加入個人 PHP技術交流羣