PHP面试内容 整理搜集 PHP面试涉及技术 一文回顾全部 主要含PHP面试命令列表 方法列表...
PHP面試時常涉及的內容總結
- 熟悉框架?
- 邏輯題 快排? 正則 數組函數....
- 抽獎, 秒殺
- 數據庫 優化,sql書寫
- 緩存 redis mecache
- Linux命令
- 其他技術 sphinx, swool 異步處理,
- (同步異步 分布式)
- 其他語言 Java python(多線程 爬蟲) go c(一般溫個別的)
?
PHP7新特性 整理制作
?https://www.cnblogs.com/stillstep/p/11020572.html
?
URL正則表達式 email郵箱正則匹配表達式 中文正則匹配表達式 3個常見面試的正則表達式問題和筆試題
https://www.cnblogs.com/stillstep/p/11013378.html
?
面向對象的三大特性是"封裝、"多態"、"繼承",五大原則是"單一職責原則"、"開放封閉原則"、"里氏替換原則"、"依賴倒置原則"、"接口分離原則"。
面向對象三大特性,五大原則
https://blog.csdn.net/xtzmm1215/article/details/46946655
?
php下載大文件的方法 異步處理?? 使用swool gearman等...
?
探討PHP中this,self,parent的區別詳解_php技巧_腳本之家
https://m.jb51.net/article/38105.htm
API接口設計要考慮的因素 - vbird的博客 - CSDN博客
一、接口版本化
二、接口面向的應用場景
三、請求參數的規范性及處理的統一性
四、返回數據類型、返回碼及信息提示的規范性
五、接口安全驗證及權限的控制
六、接口調用頻率的控制
七、請求接口日志的記錄
八、接口文檔的可讀性
https://blog.csdn.net/Dorisnzy/article/details/80882144
?
面向對象的五大基本原則
單一職責原則(SRP)
開放封閉原則(OCP)
里氏替換原則(LSP)
依賴倒置原則(DIP)
接口隔離原則(ISP)
面向對象三大特性,五大原則
https://blog.csdn.net/xtzmm1215/article/details/46946655
?
PHP的面向對象 — 封裝、繼承、多態 - 誰還在我身邊 - 博客園
https://www.cnblogs.com/wk1102/p/6986483.html?utm_source=itdadao&utm_medium=referral
面向過程簡單直接,易于入門理解,模塊化程度較低。而面向對象相對于面向過程較為復雜,不易理解,模塊化程度較高。可總結為下面三點:
都可以實現代碼重用和模塊化編程,但是面對對象的模塊化更深,數據更封閉,也更安全!因為面向對象的封裝性更強!
面對對象的思維方式更加貼近于現實生活,更容易解決大型的復雜的業務邏輯
從前期開發角度上來看,面對對象遠比面向過程要復雜,但是從維護和擴展功能的角度上來看,面對對象遠比面向過程要簡單!
編程思想:面向對象和面向過程
https://www.cnblogs.com/BeiGuo-FengGuang/p/5935763.html
面向對象有三大特性,分別是封裝性、繼承性和多態性,這里小編不給予太多的解釋,因為在后邊的博客會專門總結的!
面向過程
優點:性能比面向對象高,因為類調用時需要實例化,開銷比較大,比較消耗資源;比如單片機、嵌入式開發、 Linux/Unix等一般采用面向過程開發,性能是最重要的因素。
缺點:沒有面向對象易維護、易復用、易擴展
面向對象
優點:易維護、易復用、易擴展,由于面向對象有封裝、繼承、多態性的特性,可以設計出低耦合的系統,使系統 更加靈活、更加易于維護
缺點:性能比面向過程低
?
以下程序,變量str什么值的情況下輸入111?
?
if( ! $str ) { echo 111; }
?
在$str值為:0,’0′,false,null,”"
你所知道的php數組相關的函數?
?
array()----創建數組
?
array_combine()----通過合并兩個數組來創建一個新數組
?
range()----創建并返回一個包含指定范圍的元素的數組
?
compact()----建立一個數組
?
array_chunk()----將一個數組分割成多個
?
array_merge()----把兩個或多個數組合并成一個數組
?
array_slice()----在數組中根據條件取出一段值
?
array_diff()----返回兩個數組的差集數組
?
array_intersect()----計算數組的交集
?
array_search()----在數組中搜索給定的值
?
array_splice()----移除數組的一部分且替代它
?
array_key_exists()----判斷某個數組中是否存在指定的key
?
shuffle()----把數組中的元素按隨機順序重新排列
?
array_flip()----交換數組中的鍵和值
?
array_reverse()----將原數組中的元素順序翻轉,創建新的數組并返回
?
array_unique()----移除數組中重復的值
PHP程序使用utf-8編碼, 以下程序輸出結果是什么? B
<?php
$str = ’hello你好世界’;
echo strlen($str);
?>
A) 9? ? ? ? ? ?B) 13(gbk) C) 18? ? ? ? ? ? ? ? ? ?D) 17(utf8)
?
在java中,關于String中各種編碼中文字符的字節長度
先來看英文字母所占字節數:
char c = 'a';
結果如下:
默認編碼:UTF-8, 字節數:1
編碼:utf8, 字節數:1
編碼:utf16, 字節數:4
編碼:gb2312, 字節數:1
編碼:gbk, 字節數:1
再來看看中文字符:
char c = '中';
結果如下:
默認編碼:UTF-8, 字節數:3
編碼:utf8, 字節數:3
編碼:utf16, 字節數:4
編碼:gb2312, 字節數:2
編碼:gbk, 字節數:2
可以發現UTF-16編碼下,無論中文還是字母都占用4個字節。
?
php strlen mb_strlen計算中英文混排字符串長度
$str=‘中文a字1符‘;?
echo strlen($str);?
結果分析:在strlen計算時,對待一個UTF8的中文字符是3個長度,所以“中文a字1符”長度是3*4+2=14?
在mb_strlen計算時,選定內碼為UTF8,則會將一個中文字符當作長度1來計算,所以“中文a字1符”長度是6?
數據庫用utf8編碼時 同理 一個中文長度為1
?
在經過實驗后得到以下結論(適用MySQL 5.0以上版本):
1.一個漢字占多少長度與編碼有關:
? ? ? ? ?UTF-8:一個漢字=3個字節
? ? ? ? ? ? GBK:一個漢字=2個字節
?2.在MySQL中 varchar(n)和char(n)表示n個字符,無論漢字和英文,Mysql都能存入n個字符,僅是實際字節長度有所區別
? ? ?即 MySQL 并不會對超過長度的字符報錯,而是直接截斷了. 并且 char(2) 和 varchar(2) 都能存儲 2個漢字,或者是兩個英文字符.?
?3. MySQL 的 char(n) 和varchar(n) 可以直接存儲 n 個漢字. 而不是 n/3或者 n/2 個,mysql 屏蔽了具體的存儲細節,而直接以實際字符的個數來決定char存儲的個數
---------------------?
作者:risingsun001?
來源:CSDN?
原文:https://blog.csdn.net/risingsun001/article/details/9376249?
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
ySql中UTF8 和 GBK 編碼中文字符長度問題
?
英文字母和中文漢字在不同字符集編碼下的字節數對比
英文字母:中文漢字:(括號內為中文漢字所占字節數)
字節數 : 1(2);編碼:GB2312
字節數 : 1(2);編碼:GBK
字節數 : 1(2);編碼:GB18030
字節數 : 1(1);編碼:ISO-8859-1
字節數 : 1(3);編碼:UTF-8
字節數 : 4(4);編碼:UTF-16
字節數 : 2(2);編碼:UTF-16BE
字節數 : 2(2);編碼:UTF-16LE
---------------------?
作者:四海銀狐?
來源:CSDN?
原文:https://blog.csdn.net/twtcqw2008/article/details/80694728?
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
英文字母和中文漢字在不同編碼下的字節數對比
?
?
mysql:
分享幾道Mysql常見的面試題
https://m.2cto.com/database/201806/752176.html
??
【MySQL】20個經典面試題, - waveclouds的博客 - CSDN博
https://blog.csdn.net/waveclouds/article/details/79535685
MySQL常見面試題 - Frankiee - 博客園
https://www.cnblogs.com/frankielf0921/p/5930743.html
1. 主鍵 超鍵 候選鍵 外鍵
2.數據庫事務的四個特性及含義
3.視圖的作用,視圖可以更改么?
4.drop,delete與truncate的區別
5.索引的工作原理及其種類
局部性原理與磁盤預讀
B-/+Tree索引的性能分析
7.數據庫范式
第三范式(3NF)
滿足第三范式(3NF)必須先滿足第二范式(2NF)。簡而言之,第三范式(3NF)要求一個數據庫表中不包含已在其它表中已包含的非主關鍵字信息。例如,存在一個部門信息表,其中每個部門有部門編號(dept_id)、部門名稱、部門簡介等信息。那么在員工信息表中列出部門編號后就不能再將部門名稱、部門簡介等與部門有關的信息再加入員工信息表中。如果不存在部門信息表,則根據第三范式(3NF)也應該構建它,否則就會有大量的數據冗余。簡而言之,第三范式就是屬性不依賴于其它非主屬性。(我的理解是消除冗余)
9.存儲過程與觸發器的區別
?
redis和memcached的優缺點及區別
https://blog.csdn.net/TiaoZhanJi_Xian/article/details/80301976
5. Memcache與Redis的區別都有哪些?
6. Redis 常見的性能問題都有哪些?如何解決?
7, redis 最適合的場景
Redis最適合所有數據in-momory的場景
7, redis 最適合的場景
Redis最適合所有數據in-momory的場景,雖然Redis也提供持久化功能,但實際更多的是一個disk-backed的功能,跟傳統意義上的持久化有比較大的差別
在國外火了,看看外國人翻唱這首歌,完全完全不一樣的感覺 ...
?
LNMP環境的安裝配置 - syoukaihou - 博客園
https://www.cnblogs.com/xxoome/p/5884063.html
LNMP環境搭建與配置(一) - 變成習慣 - CSDN博客
https://blog.csdn.net/miss1181248983/article/details/80890649
linux下安裝nginx - syoukaihou - 博客園
http://www.cnblogs.com/xxoome/p/5866475.html
ajax優缺點 - 天滿 - 博客園
https://www.cnblogs.com/xiaoxiao666/p/6541941.html
?
?
gearman(異步計算)學習 - lpfuture - 博客園
https://www.cnblogs.com/lpfuture/p/6973091.html
mysql中int可存儲數據大小是2的12348次方, 、bigint、smallint 和 tinyint的區別詳細介紹 - 獨行客 - 博客園
https://www.cnblogs.com/yiwd/p/5531167.html
網絡編程學習筆記一:Socket編程 - 極客先鋒 - 博客園
https://www.cnblogs.com/jikexianfeng/p/5729168.html
docker-image container 基本操作 -常用命令 - 夏冬青 - 博客園
https://www.cnblogs.com/xiadongqing/p/6144053.html
PHP互換兩個變量值的方法(不用第三變量)
php 快速定位代碼錯誤
代碼出現Bug,如何快速定位到Bug出現的位置和原因
PHP的面向對象 — 封裝、繼承、多態 - 誰還在我身邊 - 博客園
https://www.cnblogs.com/wk1102/p/6986483.html?utm_source=itdadao&utm_medium=referral
?
GET和POST兩種基本請求方法的區別
你輕輕松松的給出了一個“標準答案”:
GET在瀏覽器回退時是無害的,而POST會再次提交請求。
GET產生的URL地址可以被Bookmark,而POST不可以。
GET請求會被瀏覽器主動cache,而POST不會,除非手動設置。
GET請求只能進行url編碼,而POST支持多種編碼方式。
GET請求參數會被完整保留在瀏覽器歷史記錄里,而POST中的參數不會被保留。
GET請求在URL中傳送的參數是有長度限制的,而POST么有。
對參數的數據類型,GET只接受ASCII字符,而POST沒有限制。
GET比POST更不安全,因為參數直接暴露在URL上,所以不能用來傳遞敏感信息。
GET參數通過URL傳遞,POST放在Request body中。
(本標準答案參考自w3schools)
“很遺憾,這不是我們要的回答!”
https://www.cnblogs.com/logsharing/p/8448446.html
?
?
gearman管理工具GearmanManager的安裝與使用 -
https://www.cnblogs.com/jkko123/p/6496901.html
?
PHP Gearman擴展函數列表
https://blog.csdn.net/huangjinvv/article/details/8004370
https://app.yinxiang.com/shard/s26/nl/23207001/c8c7e3f1-ed93-4b89-8792-3688629177bf?title=PHP%20Gearman%E6%89%A9%E5%B1%95%E5%87%BD%E6%95%B0%E5%88%97%E8%A1%A8%20-%20HuangJin's%20blog%20-%20CSDN%E5%8D%9A%E5%AE%A2
PHP: Gearman - Manual
GearmanClient — The GearmanClient class
GearmanJob — The GearmanJob class
GearmanTask — The GearmanTask class
GearmanWorker — The GearmanWorker class
GearmanException — The GearmanException class
https://app.yinxiang.com/shard/s26/nl/23207001/3cc9cf31-4f8e-415c-b0a6-ae9937b90c91?title=PHP%3A%20Gearman%20-%20Manual
https://www.php.net/manual/zh/book.gearman.php
?
你輕輕松松的給出了一個“標準答案”:
GET在瀏覽器回退時是無害的,而POST會再次提交請求。
?
GET產生的URL地址可以被Bookmark,而POST不可以。
?
GET請求會被瀏覽器主動cache,而POST不會,除非手動設置。
?
GET請求只能進行url編碼,而POST支持多種編碼方式。
?
GET請求參數會被完整保留在瀏覽器歷史記錄里,而POST中的參數不會被保留。
?
GET請求在URL中傳送的參數是有長度限制的,而POST么有。
?
對參數的數據類型,GET只接受ASCII字符,而POST沒有限制。
?
GET比POST更不安全,因為參數直接暴露在URL上,所以不能用來傳遞敏感信息。
?
GET參數通過URL傳遞,POST放在Request body中。
(本標準答案參考自w3schools)GET和POST兩種基本請求方法的區別https://www.cnblogs.com/logsharing/p/8448446.html
?
幾種跨域實現方式
方式八:代理
方式七:WebSocket
方式六:通過document.domain+iframe來跨子域(必須主域相同)
方式五:window.postMessage()(不常用)
方式四:window.name+iframe
方式三:使用跨域資源共享(CORS)來跨域
方式二:JSONP跨域
方式一:圖片ping或script標簽跨域
4. websocket
postMessage()方法允許來自不同源的腳本采用異步方式進行有限的通信,可以實現跨文本檔、多窗口、跨域消息傳遞。
3. postMessage
5. Node中間件代理(兩次跨域)
九種跨域方式實現原理(完整版)
https://www.cnblogs.com/fundebug/p/10329202.html
?
以下程序,變量str什么值的情況下輸入111?
if( ! $str ) { echo 111; }
在$str值為:0,’0′,false,null,”"你所知道的php數組相關的函數?
array()----創建數組
array_combine()----通過合并兩個數組來創建一個新數組
range()----創建并返回一個包含指定范圍的元素的數組
compact()----建立一個數組
array_chunk()----將一個數組分割成多個
array_merge()----把兩個或多個數組合并成一個數組
array_slice()----在數組中根據條件取出一段值
array_diff()----返回兩個數組的差集數組
array_intersect()----計算數組的交集
array_search()----在數組中搜索給定的值
array_splice()----移除數組的一部分且替代它
array_key_exists()----判斷某個數組中是否存在指定的key
shuffle()----把數組中的元素按隨機順序重新排列
array_flip()----交換數組中的鍵和值
array_reverse()----將原數組中的元素順序翻轉,創建新的數組并返回
array_unique()----移除數組中重復的值PHP程序使用utf-8編碼, 以下程序輸出結果是什么? B<?php$str = ’hello你好世界’;
echo strlen($str);
?>
A) 9? ? ? ? ? ?B) 13(gbk) C) 18? ? ? ? ? ? ? ? ? ?D) 17(utf8)先來看英文字母所占字節數:
char c = 'a';結果如下:默認編碼:UTF-8, 字節數:1編碼:utf8, 字節數:1編碼:utf16, 字節數:4編碼:gb2312, 字節數:1編碼:gbk, 字節數:1再來看看中文字符:char c = '中';結果如下:默認編碼:UTF-8, 字節數:3編碼:utf8, 字節數:3編碼:utf16, 字節數:4編碼:gb2312, 字節數:2編碼:gbk, 字節數:2
可以發現UTF-16編碼下,無論中文還是字母都占用4個字節。$str=‘中文a字1符‘;?echo strlen($str);?
轉載于:https://www.cnblogs.com/stillstep/p/11052996.html
總結
以上是生活随笔為你收集整理的PHP面试内容 整理搜集 PHP面试涉及技术 一文回顾全部 主要含PHP面试命令列表 方法列表...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一辆新的铃木盗匪400cc要多少钱?
- 下一篇: 四字微信网名男生