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