1. 程式人生 > 其它 >面試題 PHP---1

面試題 PHP---1

一、單選題(共27題,每題5分)

1.Memcache與Redis的比較錯誤的是?

A、Memcache過期後,不刪除快取,會導致下次取資料資料的問題,Redis有專門執行緒,清除快取資料;

B、Memcache和redis都是隻支援單執行緒;CPU利用方面Memcache和redis部分伯仲

C、Memcache只支援key value儲存方式,Redis支援更多的資料型別,比如Key value,hash,list,set,zset;

D、Memcache自身不支援持久化,Redis支援持久化;

參考答案:B

答案解析:

Memcache支援多執行緒,redis支援單執行緒;CPU利用方面Memcache優於redis

2.mysql5.7中關於json型別的說明,不對的是那個

A、JSON資料可以做有效性檢查

B、json資料中,還是需要遍歷所有字串才能找到資料

C、JSON使得查詢效能提升

D、JSON支援部分屬性索引,通過虛擬列的功能可以對JSON中的部分資料進行索引

參考答案:B

答案解析:

原生的JSON優勢如下: 1. 儲存上類似text,可以存非常大的資料。 2. JSON有效性檢查:插入的資料必須是JSON型別的字串才行。 3. 相比於傳統形式,不需要遍歷所有字串才能找到資料。 4. 支援索引:通過虛擬列的功能可以對JSON中部分的資料進行索引

3.執行下面程式碼$x會變成什麼值呢?

A、NULL

B、255

C、0

D、false

參考答案:C

答案解析:

正確答案:C 答案解析:oxFF是一個十六進位制數,這時不會轉整型比較,會先將16進位制數字轉換成10進位制數字,再做比較。 使用int函式,PHP會使用is_numeric_string 判斷字串是否包含十六進位制數字然後進行轉換。發現0xff的0後面無數字,故為0.

4.大資料的資料庫 (NoSQL)與關係型資料庫的區別:

A、水平擴充套件與垂直擴充套件

B、是否支援事務的ACID

C、應用中兩種資料庫互相補充

D、以上都是

參考答案:D

答案解析:無

5.關於判斷檔案型別,以下說法正確的是?

A、根據檔案的副檔名可以正確判斷檔案的型別

B、根據檔案的特徵值可以正確判斷檔案型別

C、根據檔案的大小及特徵值可以正確判斷檔案型別

D、通過任何方法也無法100%確定檔案型別

參考答案:D

答案解析:任何方式都可以偽造,所以我們只能通過方法無限接近,而無法完全保證可以判斷正確。

6.以下命令描述爭取的是?

ps -aux --sort -pcpu,+pmem | head -n 10

A、查詢CPU使用排名前十的程式

B、查詢訪問CPU十次以上的程式

C、查詢cpu和快取訪問前十的程式

D、查詢cpu和記憶體前十的記錄

參考答案:D

答案解析:ps -aux --sort -pcpu,+pmem | head -n 10 通過aux命令查詢cup和記憶體前十的記錄

7.關於json說法錯誤的是:

A、json_encode只能處理utf-8編碼的資料

B、可以用sprintf組裝或解析json字串

C、json_encode只能編碼陣列

D、json_decode可以將json字串解碼成物件

參考答案:C

答案解析:json_encode 可以編碼成陣列和物件

8.以下關於程序和程式的區別的說法,錯誤的是?

A、程式沒有狀態,而程序是有狀態的

B、程式是一組有序的靜態指令,程序是一次程式的執行過程

C、程式可以長期儲存,程序是暫時的

D、程式只能在前臺執行,而程序可以在前臺或後臺執行

參考答案:D

答案解析:程式是一段可執行的程式碼檔案,在linux上就是檔案。 程式執行時就被稱為程序,即程序是執行狀態的程式。

9.PHP面向物件原則理解錯誤的是?

A、介面分離原則

B、依賴原則

C、替換原則

D、多項職責原則

參考答案:D

答案解析:五大基本原則 單一職責原則SRP(Single Responsibility Principle) 是指一個類的功能要單一,不能包羅永珍。如同一個人一樣,分配的工作不能太多,否則一天到晚雖然忙忙碌碌的,但效率卻高不起來。 開放封閉原則OCP(Open-Close Principle) 一個模組在擴充套件性方面應該是開放的而(需要更多學習資料和麵試題請加入qun6/7/7/0/7/9/7/7/0)在更改性方面應該是封閉的。比如:一個網路模組,原來只服務端功能,而現在要加入客戶端功能, 那麼應當在不用修改服務端功能程式碼的前提下,就能夠增加客戶端功能的實現程式碼,這要求在設計之初,就應當將服務端和客戶端分開,公共部分抽象出來。 替換原則(the Liskov Substitution Principle LSP) 子類應當可以替換父類並出現在父類能夠出現的任何地方。比如:公司搞年度晚會,所有員工可以參加抽獎,那麼不管是老員工還是新員工, 也不管是總部員工還是外派員工,都應當可以參加抽獎,否則這公司就不和諧了。 依賴原則(the Dependency Inversion Principle DIP) 具體依賴抽象,上層依賴下層。 假設B是較A低的模組,但B需要使用到A的功能,這個時候,B不應當直接使用A中的具體類: 而應當由B定義一抽象介面,並由A來實現這個抽象介面,B只使用這個抽象介面:這樣就達到 了依賴倒置的目的,B也解除了對A的依賴,反過來是A依賴於B定義的抽象介面。通過上層模組難以避免依賴下層模組,假如B也直接依賴A的實現,那麼就可能造成迴圈依賴。一個常見的問題就是編譯A模組時需要直接包含到B模組的cpp檔案,而編譯B時同樣要直接包含到A的cpp檔案。 介面分離原則(the Interface Segregation Principle ISP) 模組間要通過抽象介面隔離開,而不是通過具體的類強耦合起來。

10.三個人獨立地破譯一份密碼,已知各人能譯出的概率分別為 1/5,1/4,1/3,則密碼能被破譯的概率為 ?

A、1/60

B、3/5

C、59/60

D、13/30

參考答案:B

答案解析:題目中,至少有一人能破譯密碼和三人都不能破譯密碼是對立事件。 所以至少有一人能譯出的概率=1-三人都沒譯出的概率=1-(1-1/5)(1-1/3)(1-1/4)=1-2/5=3/5。

11.PHP陣列型別與其他型別轉換,以下錯誤的是?

A、int,float,string,boolean,resource型別(array)$a等同於 array($a)

B、(array)object 鍵名是物件成員變數名,鍵值是物件成員屬性

C、array(false)=[] 空陣列

D、(array)null = [] 空陣列

參考答案:C

答案解析:int,float,string,boolean,resource型別(array)$a等同於 array($a) (array)object 鍵名是物件成員變數名,鍵值是物件成員屬性 (array)null =
空陣列。

12.以下關於結構型模式說法錯誤的是?

A、結構型模式可以在不破壞類封裝性的基礎上,實現新的功能

B、結構型模式主要用於建立一組物件

C、結構型模式可以建立一組類的統一訪問介面

D、結構型模式可以在不破壞類封裝性的基礎上,使得類可以同不曾估計到的系統進行互動

參考答案:B

答案解析:結構型(structural):處理類或物件間的組合。

13.小王的部門領導給下達了一個任務:由於網站某個欄目訪問量很大,因此需要專門給網站的某個url請求做負載均衡,那麼該通過什麼叢集軟體實現呢?

A、LVS叢集軟體

B、oneproxy叢集軟體

C、haproxy叢集軟體

D、keepalived叢集軟體

參考答案:C

答案解析:略。

14.以下檔案被稱為純文字檔案或ASCII檔案的是()。

A、以.EXE為副檔名的檔案

B、以.TXT為副檔名的檔案

C、以BMP為副檔名的檔案

D、以.DOC為副檔名的檔案

參考答案:B

答案解析:純文字檔案或ASCII檔案一般以txt為副檔名。

15.以下能夠刪除一列的是

A、alter table emp remove addcolumn

B、alter table emp drop column addcolumn

C、alter table emp delete column addcolumn

D、alter table emp delete addcolumn

參考答案:B

答案解析:drop 刪除列 表 delete 刪除行

16.以下哪個字尾的檔案型別不是文字檔案?

A、word

B、Excel

C、txt

D、pdf

參考答案:D

答案解析:pdf是二進位制檔案。

17.以下程式碼 a.php 輸出的結果是?
a.php 的程式碼如下:

<b.php的程式碼如下:

A、foo in a

B、什麼也不輸出

C、報錯

D、foo in b

參考答案:C

答案解析:答案是C 想讓大家思考的是、為什麼在b裡邊使用了return、依然可以找到foo函式的定義、並且報錯 Cannot redeclare foo() ? 因為php是在執行之前先解釋執行、為避免(需要更多學習資料和麵試題請加入qun6/7/7/0/7/9/7/7/0)表述不精確、附上文件原文:Note that because PHP processes the file before running it, any functions defined in an included file will still be available, even if the file is not executed.

18.以下關於非對稱加密的說法錯誤的是

A、加密速度慢

B、安全性高

C、雙方需要同步金鑰

D、可以進行數字簽名

參考答案:C

答案解析:非對稱加密即加密解密不是同一把金鑰,目的就是提高安全性,自然速度可能會降低。數字簽名是非對稱加密的典型應用。

19.關於Laravel中介軟體錯誤的是?

A、執行Artisan 命令 make:middleware 建立新的中介軟體

B、可定義前置 & 後置中介軟體

C、中介軟體是代理模式

D、中介軟體是中介模式

參考答案:C

答案解析:執行Artisan 命令 make:middleware 建立新的中介軟體 可定義前置 & 後置中介軟體

20.以下可以將PHP變數序列化並且儲存到檔案中的是?

A、serialize()

B、json_encode()

C、var_export()

D、以上都可以

參考答案:C

答案解析:var_export()第二個引數為TRUE,可以返回變數的表示。

21.關於php配置選項錯誤的是

A、開啟 short_open_tag 允許使用PHP 程式碼開始標誌的縮寫形式(<? ?>)

B、如果啟用了 magic_quotes_runtime,大多數返回任何形式外部資料的函式,包括資料庫和文字段將會用反斜線轉義引號

C、因為可以在執行時使用ini_set對配置選項進行設定,所以display_errors可以一直開啟

D、PHP 的安全模式是為了試圖解決共享伺服器(shared-server)安全問題而設立的

參考答案:C

答案解析:儘管 display_errors 也可以在執行時設定 (使用 ini_set()), 但是指令碼出現致命錯誤時任何執行時的設定都是無效的。 因為在這種情況下預期執行的操作不會被執行。這樣將會暴露敏感資訊。

22.關於PHP陣列Bucket結構體,說法錯誤的是?

A、void *pData 指向value

B、void *pKey 指向key

C、void *pDataPtr 指向value的指標

D、struct bucket *pLast 存放同一個Bucket內的上一個元素

參考答案:B

答案解析:void *pData 指向value void *pDataPtr 指向value的指標 struct bucket *pNext 存放同一個Bucket內的下一個元素 struct bucket *pLast 存放同一個Bucket內的上一個元素。

23.設計效能較優的關係模式稱為規範化,規範化主要的理論依據是( )。

A、關係規範化理論

B、關係運算理論

C、關係代數理論

D、數理邏輯

參考答案:A

答案解析:A。

24.從使用者在瀏覽器中輸入網址並回車,到看到完整的頁面,中間都經歷了哪些過程?

A、 瀏覽器->url->dns->ip->port->nginx->tcp->server name->php-fpm/fast cgi->php

B、 瀏覽器->url->dns->ip->tcp->port->nginx->server name->php-fpm/fast cgi->php

C、 瀏覽器->url->dns->ip->port->tcp->nginx->server name->php->php-fpm/fast cgi

D、 瀏覽器->url->dns->ip->port->tcp->nginx->server name->php-fpm/fast cgi->php

參考答案:D

答案解析:一個PHP的Web請求:

瀏覽器傳送一個URL請求 2.DNS開始解析域名 3.獲取到IP後開始訪問IP和Port 4.開發傳送TCP請求到Nginx 5.Nginx解析server name ,然後傳送到 php-fpm管理程序 6.php-fpm把具體的請求交給PHP最後執行。

25.閱讀下面PHP程式碼,並選擇輸出結果( )

B、1

C、2

D、3

參考答案:D

答案解析:static屬性常駐記憶體。

26.以下哪條不是PHP語言的特性?

A、開源

B、免費

C、基於客戶端

D、便捷高效

參考答案:C

答案解析:PHP語言的特性為:開源、免費和便捷高效。

(加入群677079770獲取更多面試題答案和學習資料。)

27.關於PHP陣列key和value的限制條件,說法正確的是?

A、key只能是int或string型別,value可以使任何型別

B、key可以是任何型別,value可以是任何型別

C、key可以是任何型別,value只能是int或string型別

D、key只能是int或string型別,value只能是int或string型別

參考答案:A

答案解析:key只能是int或string型別,value可以使任何型別

二、多選題(共3題,每題5分)

1.假設當前螢幕分別率為1024×768,定義一個居中的佔螢幕一半大小的表格的語句是

A、<TABLEALIGN=”CENTER”WIDTH=”50%”></TABLE>

B、<TABLEALIGN=”CENTER”WIDTH=”512″></TABLE>

C、<DIVALIGN=”CENTER”><TABLEWIDTH=”512″></TABLE></DIV>

D、<CENTER><TABLEWIDTH=”50%”></TABLE></CENTER>

參考答案:A,B,C,D

答案解析:center標籤HTML5不推薦使用了...這種沒有語義的純樣式標籤是不符合w3c規範的,MDN上也有相關說明。

2.下列正則表示式不能匹配”www.innotechx.com”的是:

下列正則表示式不能匹配”www.innotechx.com”的是:

A、^w+.w+.w+$

B、[w]{0,3}.[a-z]*.[a-z]+

C、^w.*com$

D、[w]{3}.[a-z]{11}.[a-z]

參考答案:A,D

答案解析:首先來看A選項,^表示匹配字串的開始,而 w 和 . 是沒有特殊意義的,千萬不要看錯成是“w(匹配字母或數字或下劃線或漢字)”了,+ 表示重複一次或者多次,$是匹配字串的結束。所以該選項會匹配 [www.www.www](http://www.www.www)(其中w可重複一次以上)。

B選項,[w]{0,3}限定符,表示將w重複0到3次, “ . ”無特殊意義,* 表示重複任意次,包括零次,[a-z]表示匹配a到z的字母,所以就是匹配a到z中的某一字母任意次重複。後面這個相同意思,就是+號是重複一次以上。連起來看,是可以匹配選項的。

C選項,與上述選項相同,^先匹配字串開始,然後包含一個 w ,和 " . "重複任意次,最後以com結尾。這個正則會匹配包含了 “wcom”的字串,但是w要是開頭,com要是結尾,所以可以匹配選項,大家可以自己試試看。

D選項,重複三次w,然後一個" . ",但是後面這裡要重複11次a到z中的某一字母,數了下題目中選項只有9個字母,後面就不要看啦,已經錯啦~(需要更多學習資料和麵試題請加入qun6/7/7/0/7/9/7/7/0)

廢話 有點多吼,有說錯了請指出,剛學也不怎麼懂~。

3為什麼大型網站要使用訊息佇列?

A、解耦

B、非同步

C、削峰

D、大資料處理

參考答案:A,B,C

答案解析:訊息佇列常見的使用場景有很多,但是比較核心的有 3 個:解耦、非同步、削峰 大資料處理,有相應的處理辦法,和訊息佇列關係不大。