[PHP面試必看:BAT招聘PHP程序員照藻,曾經(jīng)問過的10個(gè)PHP面試問題]

【1】PHP的整型溢出問題是怎樣的袜啃?
PHP的整型數(shù)的字長(zhǎng)和平臺(tái)有關(guān),對(duì)于32位的操作系統(tǒng)幸缕,最大的整型是有二十多億群发,其實(shí)就是2的31次方,最小為-2的31次方发乔,PHP不支持無(wú)符號(hào)的整數(shù)熟妓。 如果一個(gè)數(shù)超出了integer范圍,將會(huì)被自動(dòng)解釋為float栏尚。如果執(zhí)行的運(yùn)算結(jié)果超出了 integer 范圍起愈,也會(huì)返回 float。(那在java、C中的整型整型溢出會(huì)怎樣)
【2】如何理解OOP抬虽?
OOP官觅,面向?qū)ο缶幊蹋ㄈ齻€(gè)方面阐污,繼承性缰猴、封裝性、多態(tài)性疤剑,其中最根本的東西就是抽象滑绒。繼承性,即擴(kuò)展性隘膘,通過子類對(duì)已經(jīng)存在的父類進(jìn)行功能擴(kuò)展疑故。封裝性,要求外部不能隨意存取對(duì)象的內(nèi)部數(shù)據(jù)弯菊,即對(duì)該類中的具體實(shí)現(xiàn)做封裝纵势,用戶不必知道內(nèi)部的具體實(shí)現(xiàn),只有知道它是干什么的管钳,怎么用就好了钦铁。多態(tài)性,就是類的抽象和接口才漆,同一個(gè)類能夠處理多種類型對(duì)象的能力牛曹。我們?cè)诂F(xiàn)實(shí)中,看到的任何東東都可以看做為一個(gè)對(duì)象醇滥,然后通過進(jìn)一步的抽象為類黎比,類又可以演變?yōu)楹芏囝愃频膶?duì)象。舉個(gè)簡(jiǎn)單的例子鸳玩,將我們看到的一個(gè)房子抽象為一個(gè)ROOM類阅虫,包括基本的門,窗不跟,桌子等物件颓帝,人可以進(jìn)出等功能。 現(xiàn)在我們繼承ROOM類為Classroom窝革,包括扇門购城,有大窗,有桌椅聊闯,另外只包括一個(gè)黑白和一個(gè)講臺(tái)工猜,老師和同學(xué)可以上課。現(xiàn)在我們實(shí)例化這個(gè)Classroom類為Classroom_621對(duì)象,包括兩扇門菱蔬,四扇大窗,30套桌椅,有同學(xué)正在上毛概課拴泌。
【3】你對(duì)于設(shè)計(jì)模式和MVC的理解
Model-View-Controller魏身,模型、視圖蚪腐、控制器箭昵,一想到MVC就會(huì)想到JAVA,因?yàn)镴AVA是一個(gè)完全面向?qū)ο蟮恼Z(yǔ)言回季,MVC最早出現(xiàn)在smalltalk中家制,其核心就是要將試圖和數(shù)據(jù)模型分離,這樣不同的程序就可以有不同的展示泡一。模型颤殴,即程序員寫的功能、算法和數(shù)據(jù)模型鼻忠,也就是我們說的系統(tǒng)業(yè)務(wù)邏輯層涵但。視圖,即前端帖蔓,圖形界面矮瘟。展示給用戶看的∷芙浚控制器澈侠,主要負(fù)責(zé)對(duì)請(qǐng)求處理、轉(zhuǎn)發(fā)和加載視圖埋酬。設(shè)計(jì)模式埋涧,說白了就是代碼的設(shè)計(jì)經(jīng)驗(yàn)的總結(jié)和歸類,設(shè)計(jì)模式最早應(yīng)用于建筑行業(yè)奇瘦,編程的設(shè)計(jì)模式按最早的GoF所述棘催,包括23種設(shè)計(jì)模式,主要用于面向?qū)ο蟮某绦蚓幊潭辍W裱瓗讉€(gè)設(shè)計(jì)原則:開閉原則醇坝、單一職責(zé)原則、里氏替換原則次坡、依賴注入呼猪、接口分離、迪米特原則砸琅、優(yōu)先使用組合而不是繼承等等宋距。包括創(chuàng)建型模式、結(jié)構(gòu)性模式症脂、行為模式三類谚赎。
【4】HTTP協(xié)議1.0及1.1的區(qū)別淫僻,并簡(jiǎn)單說下HTTP協(xié)議
HTTP,超文本傳輸協(xié)議壶唤。它定義了瀏覽器和服務(wù)器的通信規(guī)則雳灵。HTTP協(xié)議是基于TCP/IP的TCP協(xié)議上,現(xiàn)在萬(wàn)維網(wǎng)使用的是HTTP1.1版本闸盔,其特點(diǎn)包括悯辙,C/S模式,請(qǐng)求簡(jiǎn)單(GET/POST/HEAD),靈活(可以傳輸任何類型的數(shù)據(jù)HTML迎吵、XML躲撰、JSON、自定義等)击费,無(wú)連接(每次連接只處理一個(gè)請(qǐng)求拢蛋,從發(fā)出請(qǐng)求到收到200狀態(tài)為止斷開連接),無(wú)狀態(tài)荡灾。對(duì)HTTP協(xié)議的考察主要包括瓤狐,響應(yīng)消息格式、請(qǐng)求消息格式批幌、狀態(tài)碼等知識(shí)點(diǎn)础锐。一般一個(gè)HTTP協(xié)議包括:起始行(start line)、首部(header)荧缘、主體(body)三個(gè)部分皆警。[響應(yīng)消息格式]HTTP/1.1 200 0KConnectlon:closeDate: Thu, 13 Oct 2005 03:17:33 GMTServer: Apache/2.0.54 (Unix)Last—Nodified:Mon,22 Jun 1998 09;23;24 GMTContent—Length:682lContent—Type:text/html這個(gè)響應(yīng)消息分為3部分:1個(gè)起始的狀態(tài)行(status line),首部截粗、1個(gè)包含所請(qǐng)求對(duì)象本身的附屬體信姓。狀態(tài)行有3個(gè)字段:協(xié)議版本字段、狀態(tài)碼字段绸罗、原因短語(yǔ)字段意推。[請(qǐng)求消息格式]GET /somedir/page.html HTTP/1.1Host:www.itheima.comConnection:closeUser-agent:Mozilla/4.0Accept-language:zh-cn(額外的回車符和換行符)該請(qǐng)求消息的第一行稱為請(qǐng)求行 (request line),后續(xù)各行都稱為頭部行(header)珊蟀。請(qǐng)求行有3個(gè)字段:方法字段菊值、URL字段、HTTP版本字段育灸。[狀態(tài)碼]1xx 消息2xx 成功3xx 重定向4xx 請(qǐng)求錯(cuò)誤5xx 服務(wù)器錯(cuò)誤[常見狀態(tài)碼]200 OK腻窒。請(qǐng)求已成功,請(qǐng)求所希望的響應(yīng)頭或數(shù)據(jù)體將隨此響應(yīng)返回磅崭。300 Multiple Choices儿子。請(qǐng)求資源有多個(gè)選擇,如請(qǐng)求文本有法語(yǔ)版砸喻、英語(yǔ)版等等柔逼。301 Moved Permanently蒋譬。表示請(qǐng)求的網(wǎng)頁(yè)已永久轉(zhuǎn)移到新位置302 Found。表示頁(yè)面在做臨時(shí)跳轉(zhuǎn)時(shí)返回的狀態(tài)卒落。304 Not Modified羡铲》渫埃客戶的緩存資源是最新的儡毕, 要客戶端使用緩存。400 Bad Request扑媚。錯(cuò)誤的請(qǐng)求腰湾。403 Forbidden。請(qǐng)求被服務(wù)器拒絕了疆股。404 Not Found费坊。表示服務(wù)器找不到請(qǐng)求的網(wǎng)頁(yè),服務(wù)器上不存在的網(wǎng)頁(yè)經(jīng)常會(huì)返回的HTTP狀態(tài)碼旬痹。500 Internal Server Error附井。503 Service Unavailable。服務(wù)器目前無(wú)法為請(qǐng)求提供服務(wù)两残,但過一段時(shí)間就可以恢復(fù)服務(wù)永毅。504 Gateway Timeout。與狀態(tài)嗎408類似人弓, 但是響應(yīng)來(lái)自網(wǎng)關(guān)或代理沼死,此網(wǎng)關(guān)或代理在等待另一臺(tái)服務(wù)器的響應(yīng)時(shí)出現(xiàn)了超時(shí)。505 HTTP Version not supported崔赌。 HTTP協(xié)議版本不支持意蛀。
【5】簡(jiǎn)單說下Apache中rewrite機(jī)制和PHP框架中URI路由機(jī)制
1)URL重寫,其實(shí)就是把用戶通過瀏覽器請(qǐng)求的URL健芭,到了后臺(tái)县钥,apache根據(jù)預(yù)先配置的重寫規(guī)則將該請(qǐng)求指向真正的資源路徑,說白了就是打馬虎眼慈迈,把真正的路徑改頭換面后給用戶訪問若贮,可問題是這樣做有啥用處呢。1吩翻、SEO方面兜看。將動(dòng)態(tài)的URL靜態(tài)化,以滿足搜索引擎的胃口狭瞎。2细移、訪問控制。比如熊锭,通過重寫規(guī)則后弧轧,客戶端不易判斷后臺(tái)程序類型等雪侥。3、URL重定向精绎。當(dāng)網(wǎng)站更改域名或增加別名URL后速缨,可以通過規(guī)則輕松的指向要訪問的URL。mod_rewrite 使用基于正則表達(dá)式動(dòng)態(tài)的修改傳入請(qǐng)求的URL代乃。它可以將URL映射到文件系統(tǒng)路徑旬牲,也可以將一個(gè)URL映射到另一個(gè)URL。它使用了沒有限制數(shù)量的規(guī)則來(lái)操縱URL搁吓,每條規(guī)則可以包括沒有限制數(shù)量的附加條件原茅。你可以通過多種方式來(lái)檢測(cè),如堕仔,服務(wù)器變量擂橘、環(huán)境變量、HTTP頭摩骨、時(shí)間戳等通贞。mod_rewrite 操作整個(gè)URL路徑,包括path-info的部分恼五。一個(gè)重寫規(guī)則可以被設(shè)置在http.conf或者.htaccess中昌罩。一個(gè)重寫規(guī)則生成的路徑可以包括一個(gè)請(qǐng)求字符串,或者內(nèi)部的子程序處理唤冈,外部請(qǐng)求的重定向峡迷,或者穿透內(nèi)部代理等。2)PHP框架中的URI路由機(jī)制你虹,與apache重寫類似绘搞,一般包括通配符和正則兩種規(guī)則。讓用戶可以重新定向(remap)URI處理程序. 設(shè)定你自己的路由規(guī)則傅物。
【6】MySQL的索引機(jī)制夯辖,復(fù)合索引的使用原則
一般都會(huì)用書本中的目錄來(lái)介紹索引機(jī)制,包括有些書本會(huì)有專門的快速檢索附錄董饰,就很類似于數(shù)據(jù)庫(kù)的索引蒿褂。MySQL的索引包括4類:主鍵索引(primary key)、唯一索引(unique)卒暂、常規(guī)索引(index)啄栓、全文索引(fullindex)。Show index from table_name; –查看表中的索引Show status like ‘Handler_read%’ –查看索引的使用情況復(fù)合索引也祠,一般遵循最左前綴原則昙楚,如table_a 的 a b c 三列建復(fù)合索引create index ind_table_a on table_a(a,b,c);那么,只有在條件中用到a,或者a诈嘿、b,或者a堪旧、b削葱、c這樣的情況下,才會(huì)用到剛建的復(fù)合索引淳梦。
【7】MySQL的表類型及MyISAM與InnoDB的區(qū)別
MySQL常見的表類型(即存儲(chǔ)引擎)show engines查看支持表類型配置析砸。常見包括:MyISAM/Innodb/Memory/Merge/NDB其中,MyISAM和Innodb是最常用的兩個(gè)表類型爆袍,各有優(yōu)勢(shì)首繁,我們可以根據(jù)需求情況選擇適合自己的表類型。[MyISAM]1)每個(gè)數(shù)據(jù)庫(kù)存儲(chǔ)包括3個(gè)文件:.frm(表定義)螃宙、MYD(數(shù)據(jù)文件)蛮瞄、MYI(索引文件)2)數(shù)據(jù)文件或索引文件可以指向多個(gè)磁盤3)Linux的默認(rèn)引擎所坯,win默認(rèn)InnoDB4)面向非事務(wù)類型谆扎,避免事務(wù)型額外的開銷5)適用于select、insert密集的表6)MyISAM默認(rèn)鎖的調(diào)度機(jī)制是寫優(yōu)先芹助,可以通過LOW_PRIORITY_UPDATES設(shè)置7)MyISAM類型的數(shù)據(jù)文件可以在不同操作系統(tǒng)中COPY堂湖,這點(diǎn)很重要,布署的時(shí)候方便點(diǎn)状土。[Innodb]1)用于事務(wù)應(yīng)用程序2)適用于update无蜂、delete密集的操作。執(zhí)行select count() from table時(shí)蒙谓,InnoDB要掃描一遍整個(gè)表來(lái)計(jì)算有多少行斥季,但是MyISAM只要簡(jiǎn)單的讀出保存好的行數(shù)即可。注意的是累驮,當(dāng)count()語(yǔ)句包含 where條件時(shí)酣倾,兩種表的操作是一樣的。DELETE FROM table時(shí)谤专,InnoDB不會(huì)重新建立表躁锡,而是一行一行的刪除。3)引入行級(jí)鎖和外鍵的約束4)InnoDB不支持FULLTEXT類型的索引
【8】簡(jiǎn)單說下快速排序算法
基本思想:通過一趟排序?qū)⒋判蛄蟹指畛蓛刹糠种檬蹋渲幸徊糠直攘硪徊糠钟涗浶∮持俜謩e對(duì)這兩部分繼續(xù)快速排序,以達(dá)到有序蜡坊。算法實(shí)現(xiàn):設(shè)有兩個(gè)指針low和high杠输,初值為low=1,high=n秕衙,設(shè)基準(zhǔn)值為key(通常選第一個(gè))蠢甲,則首先從high位置開始向前搜索,找到第一個(gè)比key小的記錄與key交換灾梦,然后從low位置向后搜索峡钓,找到第一個(gè)比key大的記錄與基準(zhǔn)值交換妓笙,重復(fù)直至low=high為止。第一趟排序結(jié)果能岩,key之前的記錄值比key之后的記錄值小寞宫。11 25 9 3 16 2 //選擇11為key2 25 9 3 16 112 11 9 3 16 252 3 9 11 16 25
【9】awk、sed拉鹃、sort的基本使用(用實(shí)例考察的)
[例]:有如下文件test,請(qǐng)統(tǒng)計(jì)每個(gè)網(wǎng)址出現(xiàn)次數(shù)辈赋,用一句shell實(shí)現(xiàn)。
a www.baidu.com 20:00
b www.qq.com 19:30
c www.baidu.com 14:00
d www.baidu.com 23:00
e www.qq.com 20:30
f www.360.com 20:30

cat test| awk -F’ ‘ ‘{print $2}’ |sort | uniq -c | sort -rn
cat查看文件內(nèi)容
相對(duì)于sed對(duì)一行數(shù)據(jù)處理
awk是對(duì)一行分成多個(gè)字段進(jìn)行處理膏燕。

sort
-r進(jìn)行反向排序
-n純數(shù)字排序
uniq -i忽略大小寫字符的不同
-r進(jìn)行技術(shù)
【10】Memcached钥屈、redis的使用和理解
Memcached和redis 都是一個(gè)key-value的內(nèi)存式存儲(chǔ)系統(tǒng)赋咽,通過hash表來(lái)存儲(chǔ)檢索結(jié)果桩了,做到強(qiáng)大的緩存機(jī)制箱沦。像新浪的微博更米、淘寶等大流量站點(diǎn)都必須的使用了這些東東铁瞒。Memcache是一個(gè)高性能的分布式的內(nèi)存對(duì)象緩存系統(tǒng)萎坷,通過在內(nèi)存里維護(hù)一個(gè)統(tǒng)一的巨大的hash表稀余,它能夠用來(lái)存儲(chǔ)各種格式的數(shù)據(jù)国葬,包括圖像及舍、視頻未辆、文件以及數(shù)據(jù)庫(kù)檢索的結(jié)果等。簡(jiǎn)單的說就是將數(shù)據(jù)調(diào)用到內(nèi)存中锯玛,然后從內(nèi)存中讀取咐柜,從而大大提高讀取速度。redis是一個(gè)key-value存儲(chǔ)系統(tǒng)攘残。和Memcached類似拙友,它支持存儲(chǔ)的value類型相對(duì)更多,包括string(字符串)肯腕、list(鏈表)献宫、set(集合)和zset(有序集合)。

鏈接:http://bbs.itheima.com/thread-336625-1-1.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末实撒,一起剝皮案震驚了整個(gè)濱河市姊途,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌知态,老刑警劉巖捷兰,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異负敏,居然都是意外死亡贡茅,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)顶考,“玉大人赁还,你說我怎么就攤上這事【匝兀” “怎么了艘策?”我有些...
    開封第一講書人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)渊季。 經(jīng)常有香客問我朋蔫,道長(zhǎng),這世上最難降的妖魔是什么却汉? 我笑而不...
    開封第一講書人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任驯妄,我火速辦了婚禮,結(jié)果婚禮上合砂,老公的妹妹穿的比我還像新娘青扔。我一直安慰自己,他們只是感情好既穆,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開白布赎懦。 她就那樣靜靜地躺著,像睡著了一般幻工。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上黎茎,一...
    開封第一講書人閱讀 51,631評(píng)論 1 305
  • 那天囊颅,我揣著相機(jī)與錄音,去河邊找鬼傅瞻。 笑死踢代,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的嗅骄。 我是一名探鬼主播胳挎,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼溺森!你這毒婦竟也來(lái)了慕爬?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤屏积,失蹤者是張志新(化名)和其女友劉穎医窿,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體炊林,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡姥卢,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片独榴。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡僧叉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出棺榔,到底是詐尸還是另有隱情彪标,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布掷豺,位于F島的核電站捞烟,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏当船。R本人自食惡果不足惜题画,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望德频。 院中可真熱鬧苍息,春花似錦、人聲如沸壹置。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)钞护。三九已至盖喷,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間难咕,已是汗流浹背课梳。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留余佃,地道東北人暮刃。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像爆土,于是被迫代替她去往敵國(guó)和親椭懊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容