溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

常見的PHP面試題

發(fā)布時(shí)間:2021-05-25 16:03:50 來源:億速云 閱讀:141 作者:Leah 欄目:編程語言

這篇文章將為大家詳細(xì)講解有關(guān)常見的PHP面試題,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

1、通過哪一個(gè)函數(shù),可以把錯(cuò)誤轉(zhuǎn)換為異常處理?

A:set_error_handler

B:error_reporting

C:error2exception

D:catch

正確答案:*A *

答案分析:set_error_handler () 可指定一個(gè)回調(diào)函數(shù),錯(cuò)誤發(fā)生時(shí),會(huì)自動(dòng)通過指定的回調(diào)函數(shù)處理。在回調(diào)函數(shù)中拋出新的異常即可。

2、下列哪個(gè) shell 函數(shù)的描述是正確的?

A:shell 函數(shù)可以先調(diào)用后定義

B:shell 函數(shù)需使用關(guān)鍵字 function 定義

C:shell 函數(shù)內(nèi)的變量可以聲明為局部變量

D:shell 函數(shù)只能通過 return 返回值,1 是成功,0 是失敗

正確答案:C

答案分析:shell 函數(shù)必須先定義在調(diào)用;聲明時(shí),無需使用關(guān)鍵字;通過 local 可以定義函數(shù)內(nèi)的局部變量;shell 函數(shù)返回值,0 是成功,非 0 是錯(cuò)誤,其他選項(xiàng)正確

3、下列關(guān)于全文檢索技術(shù)的說法,不對(duì)的是:

A: Solr 是新一代的全文檢索組件,它比 Lucene 的搜索效率高很多,還能支持 HTTP 的訪問方式,PHP 調(diào)用 Solr 也很方便。

B: MySQL 中把一個(gè)字段建立 FULLTEXT 索引,就可以實(shí)現(xiàn)全文檢索,目前 MyISAM 和 InnoDB 的 table 都支持 FULLTEXT 索引。

C: Sphinx 是一個(gè)基于 SQL 的全文檢索引擎,可以結(jié)合 MySQL 做全文搜索,它可以提供比數(shù)據(jù)庫本身更專業(yè)的搜索功能。

D: Lucene 附帶的二元分詞分析器 CJKAnalyzer 切詞速度很快,能滿足一般的全文檢索需要。

正確答案:*A *

答案分析: Solr 是新一代的全文檢索組件,它基于 Lucene,所以說它比 Lucene 快就是胡扯 :)

4、關(guān)于單例模式的說法,錯(cuò)誤的是?

A:單例模式的目的是確保在全局環(huán)境中,一個(gè)類只能有一個(gè)實(shí)例存在

B:單利模式一般要講構(gòu)造函數(shù)設(shè)置為 private

C:只需要將構(gòu)造函數(shù)設(shè)置為 private 即可確保全局中只有一個(gè)實(shí)例

D:連接數(shù)據(jù)庫的功能通常用單例模式實(shí)現(xiàn)

正確答案:*C *

答案分析:構(gòu)造函數(shù)設(shè)置為 private,僅能確保無法通過 new 創(chuàng)建新實(shí)例,但仍可以通過 clone、反序列化等方式創(chuàng)建多個(gè)實(shí)例。

5、正則的引擎表述錯(cuò)誤的是?

A 正則引擎主要可以分為兩大類:一種是 DFA,一種是 NFA。

B 一般而論,NFA 引擎則搜索更快一些。但是 DFA 以表達(dá)式為主導(dǎo),更容易操縱,因此一般程序員更偏愛 DFA 引擎!

C NFA 表達(dá)式主導(dǎo),DFA 文本主導(dǎo).

D 可以使用是否支持忽略優(yōu)先量詞和分組捕獲來判斷引擎類型:支持 NFA, 不支持 DFA

正確答案:B

答案分析:正確的說法應(yīng)該是:一般而論,DFA 引擎則搜索更快一些。但是 NFA 以表達(dá)式為主導(dǎo),更容易操縱,因此一般程序員更偏愛 NFA 引擎!

6、方框中的正則表達(dá)式能與以下哪些選項(xiàng)匹配?

/.Sd/

A. 123

B. **1234

C. 1234

D.123

正確答案:B

答案分析:本題的要點(diǎn)是理解這個(gè)正則表達(dá)式的含義 —— 從左往右,首先是零個(gè)或多個(gè)任意字符(.),跟著是一個(gè)星號(hào)(),然后是 123,最后是一個(gè)數(shù)字。因此答案是 B。

7、如下關(guān)于數(shù)據(jù)庫的說法,哪個(gè)是錯(cuò)誤的?

A:為了效率數(shù)據(jù)庫可以有多個(gè)讀庫

B:數(shù)據(jù)庫可以用主從做熱備

C:數(shù)據(jù)庫不能提供多主多從架構(gòu)

D: 數(shù)據(jù)庫主從是通過日志同步的

正確答案:C

答案分析: 數(shù)據(jù)庫可以提供多主多從架構(gòu)。

8、下面哪個(gè)不是 XSS 漏洞的修復(fù)方式?

A: 對(duì)參數(shù)進(jìn)行 htmlspecialchas 過濾

B: 對(duì)參數(shù)使用白名單過濾

C: 不允許輸入的內(nèi)容顯示到瀏覽器

D: 禁止在 js 標(biāo)簽內(nèi)輸出用戶輸入的內(nèi)容

正確答案:*A *

答案分析:這類過濾可以解決尖括號(hào)類型的 xss,無法解決 js 標(biāo)簽內(nèi)的 xss

9、下列哪一項(xiàng)不是 PHP SAPI 模式?

A.ISAPI

B.CGI

C.FastCGI

D.RESTFUL APi

正確答案:D

答案分析:A~C 是最常用的模式,D 是一種接口的組織方式。

10、對(duì)一個(gè)大文件進(jìn)行逐行遍歷,如下方法性能較高的是?

A:寫一個(gè)實(shí)現(xiàn)了 IteratorAggregate 接口的類,通過該類使用 foreach 遍歷。

B:使用 file_get_contents 將文件內(nèi)容一次性載入內(nèi)存,然后逐行遍歷。

C:通過 exec 函數(shù),調(diào)用 shell 工具遍歷

D:使用別人寫的類庫

正確答案:A

答案分析:使用 IteratorAggregate 可將文件打開后通過移動(dòng)指針的方式逐行遍歷,不受文件大小影響。使用 file_get_contents 處理大文件很容易導(dǎo)致 PHP 內(nèi)存溢出;調(diào)用 exec 會(huì)產(chǎn)生額外的進(jìn)程,影響性能;其他人寫的類庫質(zhì)量不一定高。

11、如下選項(xiàng),哪個(gè)不是設(shè)計(jì)模式應(yīng)該遵循的原則?

A:組合優(yōu)于繼承

B:針對(duì)接口編程

C:盡可能降低耦合

D:盡量使用高性能的語法

正確答案:D

答案分析:設(shè)計(jì)模式的關(guān)注點(diǎn)在于代碼的可維護(hù)性和可復(fù)用性,D 選項(xiàng)不是設(shè)計(jì)模式關(guān)注的要點(diǎn)。

12、下列關(guān)于回溯的表達(dá)式錯(cuò)誤的是?

A ab.lmn 匹配 abcdeflmnghijklmn 中的 abcdeflmnghijklmn

B ab.?lmn 匹配 abcdeflmnghijklmn 中的 abcdeflmn

C ab??c 匹配 abcdeflmnghijklmn 中的 abc

D .*lmn 匹配 abcdeflmnghijklmn 中的 abcdeflmn

正確答案:D

答案分析:D 是貪婪匹配,所以應(yīng)該匹配到的結(jié)果是 abcdeflmnghijklmn

13、函數(shù)中如果使用了 try catch finally 語法結(jié)構(gòu),return 應(yīng)該寫在哪兒?

A:finally 中

B:try 中

C:catch 中

D:任意位置

正確答案:A

答案分析:try 中 return 后 finally 會(huì)繼續(xù)執(zhí)行,如果 finally 中也有 return,則最終返回值為 finally 中 return 的值。

14、以下關(guān)于 NOSQL 的說法,不對(duì)的是:

A: Redis 支持字符串、哈希、列表、集合、有序集合等數(shù)據(jù)結(jié)構(gòu),目前 Redis 不支持事務(wù)。

B: MongoDB 支持 CAP 定理中的 AP,MySQL 支持 CAP 中的 CA,全部都支持不可能存在。

C: MongoDB 不用先創(chuàng)建 Collection 的結(jié)構(gòu)就可以直接插入數(shù)據(jù),目前 MongoDB 不支持事務(wù)。

D: Memcache 既支持 TCP 協(xié)議,也支持 UDP 協(xié)議,我們可以把 PHP 的 Session 存放到 Memcache 中。

正確答案:A

答案分析:Redis 支持事務(wù)。

15、Innodb 鎖機(jī)制說法錯(cuò)誤的是?

A:Innodb 提供了表鎖與行鎖兩種鎖機(jī)制

B:Innodb 的表鎖所會(huì)在表變更的時(shí)候觸發(fā)

C:Innodb 下 update 時(shí)會(huì)自動(dòng)給涉及到的行加上排他鎖,并創(chuàng)建出一個(gè)鏡像副本, 此時(shí)進(jìn)行 select 時(shí)查詢的是鏡像副本的數(shù)據(jù)

D:Innodb 行鎖狀態(tài)下讀不受影響,寫會(huì)受影響(涉及到的數(shù)據(jù))

正確答案:A

16、下列哪個(gè)是創(chuàng)建一個(gè)每周三 01:00~04:00 每 3 分鐘執(zhí)行執(zhí)行一次的 crontab 指令?

A: 1,4 3 /bin/bash /home/sijiaomao/ok.sh

B:/3 1,4 3 /bin/bash /home/sijiaomao/ok.sh

C:/3 1-4 3 /bin/bash /home/sijiaomao/ok.sh

D:/3 1-4 * /bin/bash /home/sijiaomao/ok.sh

正確答案:C

答案分析:A:每周三的 1 時(shí) 4 時(shí)每分鐘執(zhí)行一次 B:每周三的 1 時(shí) 4 時(shí)每 3 分鐘執(zhí)行一次 C:滿足要求 D:每天的 1 時(shí) 4 時(shí)每 3 分鐘執(zhí)行一次

17、在拆分之前,系統(tǒng)中很多列表和詳情頁所需的數(shù)據(jù)是可以通過 sql join 來完成的。而拆分后,數(shù)據(jù)庫可能是分布式在不同實(shí)例和不同的主機(jī)上,join 將變得非常麻煩。下面哪種方法不能有效解決這個(gè)問題?

A 全局表,系統(tǒng)中所有模塊都可能會(huì)依賴到的一些表在各個(gè)庫中都保存。

B 字段冗余,“訂單表” 中保存 “賣家 Id” 的同時(shí),將賣家的 “Name” 字段也冗余,這樣查詢訂單詳情的時(shí)候就不需要再去查詢 “賣家用戶表”。

C 主從復(fù)制,將數(shù)據(jù)庫的讀寫分離。

D 數(shù)據(jù)同步,定時(shí) A 庫中的 tbl_a 表和 B 庫中 tbl_b 關(guān)聯(lián),可以定時(shí)將指定的表做主從同步。

正確答案:C

答案分析:主從復(fù)制,將數(shù)據(jù)庫的讀寫分離。只能擴(kuò)容讀并發(fā),并不能緩解跨庫 join 的問題。

18、關(guān)于網(wǎng)絡(luò) IO 模型,下列哪一項(xiàng)是正確的?

A.Select 比 Epoll 更快

B.nginx 使用的是 select 模型

C.apache 支持 select 和 epoll 兩種方式的切換

D.epoll 能支持更大的并發(fā)

正確答案:D

答案分析:A epoll 更快一些。B nginx 使用 epoll 模型。C apache 只支持 select

19、PHP 執(zhí)行的時(shí)候有如下執(zhí)行過程:Scanning (Lexing) - Compilation - Execution - Parsing,其含義分別為:

A:將 PHP 代碼轉(zhuǎn)換為語言片段 (Tokens)、將 Tokens 轉(zhuǎn)換成簡單而有意義的表達(dá)式、將表達(dá)式編譯成 Opocdes、順次執(zhí)行 Opcodes

B:將 PHP 代碼轉(zhuǎn)換為語言片段 (Tokens)、將 Tokens 轉(zhuǎn)換成簡單而有意義的表達(dá)式、順次執(zhí)行 Opcodes、將表達(dá)式編譯成 Opocdes

C:將 PHP 代碼轉(zhuǎn)換為語言片段 (Tokens)、將表達(dá)式編譯成 Opocdes、順次執(zhí)行 Opcodes、將 Tokens 轉(zhuǎn)換成簡單而有意義的表達(dá)式

D:將 PHP 代碼轉(zhuǎn)換為語言片段 (Tokens)、將表達(dá)式編譯成 Opocdes、將 Tokens 轉(zhuǎn)換成簡單而有意義的表達(dá)式、順次執(zhí)行 Opcodes

正確答案:C

答案分析:正確答案為 C,正確的順序?yàn)椋篠canning (Lexing)、Parsing、Compilation、Execution

php有什么特點(diǎn)

1、執(zhí)行速度快。2、具有很好的開放性和可擴(kuò)展性。3、PHP支持多種主流與非主流的數(shù)據(jù)庫。4、面向?qū)ο缶幊蹋篜HP提供了類和對(duì)象。5、版本更新速度快。6、具有豐富的功能。7、可伸縮性。8、功能全面,包括圖形處理、編碼與解碼、壓縮文件處理、xml解析等。

關(guān)于常見的PHP面試題就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI