PHP面試題2019年騰訊工程師面試題和答案


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

1.PHP執行的時候有如下執行過程:Scanning(Lexing) - Compilation - Execution - Parsing,其含義分別為:

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

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

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

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

參考答案:C

答案解析: 

正確答案為C

1.Scanning(Lexing) ,將PHP代碼轉換為語言片段(Tokens)

2.Parsing, 將Tokens轉換成簡單而有意義的表達式

3.Compilation, 將表達式編譯成Opocdes

4.Execution, 順次執行Opcodes,每次一條,從而實現PHP腳本的功能。

 

2.不是php魔術常量的是?

A、__TRAIT__

B、__CALL__

C、__CLASS__

D、__FUNCTION__

參考答案:B

答案解析:

\_\_LINE\_\_ \_\_FILE\_\_ \_\_DIR\_\_ \_\_FUNCTION\_\_ \_\_CLASS\_\_ \_\_TRAIT\_\_ \_\_METHOD\_\_ \_\_NAMESPACE\_\_

 

3.php選項/信息函數作用錯誤的是?

A、phpinfo() 輸出關於 PHP 配置的信息

B、php_sapi_name() 返回 web 服務器和 PHP 之間的接口類型

C、ini_set() 為一個配置選項設置值

D、ini_get() 獲取所有配置選項

參考答案:D

答案解析:

ini\_get() 是獲取一個配置選項,獲取所有配置選項的函數是ini\_get\_all()

 

4.下列代碼的輸出是 ?

A、son

B、mother

C、motherson

D、error

參考答案:A

答案解析:

php里變量字符串之前加$等於指向另外一個字符串

 

5.下列對shell 變量FRUIT 操作,正確的是?

A、為變量賦值:$FRUIT=apple

B、顯示變量的值:fruit=apple

C、顯示變量的值:echo $FRUIT

D、判斷變量是否有值:[ -f ―$FRUIT ]

參考答案:C

答案解析:

為變量賦值FRUIT=apple; 顯示變量的值為C; 判斷是否有值[-n $FRUIT];

 

6.以下不是線性表是?

A、數組

B、二叉樹

C、隊列

D、棧

參考答案:B

答案解析:

二叉樹是樹結構

 

7.以下哪個函數不是PHP的文件指針操作?

A、ftell()

B、fseek()

C、file()

D、feof()

參考答案:C

答案解析:

ftell() 返回文件指針位置 fseek() 在文件指針中定位 feof() 測試文件指針是否在結尾

 

8.關於線程的,說法錯誤的是?

A、線程是進程的一個實體,是CPU調度和分派的基本單位

B、它是比進程更小的能獨立運行的基本單位

C、線程和進程一樣擁有系統資源

D、線程自己基本上不擁有系統資源

參考答案:C

答案解析:

線程是指進程內的一個執行單元,也是進程內的可調度實體。線程自己基本上不擁有系統資源

 

9.GoAccess雖然很強大但是他不能做以下哪項工作?

A、生成統計數據帶寬統計

B、可生成HTML報告

C、可發送HTTP請求

D、各HTTP狀態碼統計

參考答案:C

答案解析:

GoAccess:是一款開源、實時,運行在命令行終端下的web日志分析工具。該工具提供快速、 多樣的HTTP狀態統計,可以令管理員不再糾結於統計各類數據 GoAccess主要以統計為主

 

10.PHP的三個模塊不包括哪個?

A、內核

B、zend引擎

C、擴展層

D、解析層

參考答案:D

答案解析:

PHP總共三個模塊:內核、zend引擎、以及擴展層

 

很多人在剛接觸這個行業的時候或者是在遇到瓶頸期的時候,總會遇到一些問題,比如學了一段時間感覺沒有方向感,不知道該從那里入手去學習,對此我整理了一些資料,需要的可以免費分享給大家(11年架構師帶你解讀年薪50萬面試通關秘籍。)

如果喜歡我的文章,想與一群資深開發者一起交流學習的話,獲取更多相關大廠面試咨詢和指導,歡迎加入我的學習交流群點擊此處PHP高級交流

 

11.CSRF攻擊描述錯誤的是?

A、CSRF需要有JavaScript代碼

B、CSRF攻擊惡意代碼位於第三方站點上

C、過濾用戶的輸入可以防止惡意代碼注入到某個站點,但是它無阻止法惡意代碼在第三方站點上運行

D、CSRF符合同源策略

參考答案:A

答案解析:

XSS攻擊需要JavaScript代碼,CSRF攻擊不需要JavaScript代碼

 

12.關於PHP數組在C語言中是哪種存儲結構?

A、單鏈表

B、雙鏈表

C、循環鏈表

D、二叉樹

參考答案:B

答案解析:

雙鏈表

 

13.關於組合模式,說法錯誤的是?

A、它在我們樹型結構的問題中,模糊了簡單元素和復雜元素的概念,客戶程序可以向處理簡單元素一樣來處理復雜元素,從而使得客戶程序與復雜元素的內部結構解耦

B、定義了一種一對多的依賴關系,讓多個觀察者對象同時 監聽某一個主題對象。這個主題對象在狀態 發生變化時,會通知所有觀察者對象,使他們能夠自動更新自己

C、樹枝和葉子實現統一接口,樹枝內部組合該接口

D、將對象組合成樹形結構以表示"部分-整體"的層次結構。組合模式使得用戶對單個對象和組合對象的使用具有一致性

參考答案:B

答案解析:

將對象組合成樹形結構以表示"部分-整體"的層次結構。組合模式使得用戶對單個對象和組合對象的使用具有一致性 樹枝和葉子實現統一接口,樹枝內部組合該接口 它在我們樹型結構的問題中,模糊了簡單元素和復雜元素的概念,客戶程序可以向處理簡單元素一樣來處理復雜元素,從而使得客戶程序與復雜元素的內部結構解耦

 

14.數據結構的儲存方式描述錯誤的是?

A、順序存儲用數據元素在存儲器中的相對位置來表示數據元素之間的邏輯結構

B、鏈式存儲在每一個數據元素中增加一個存放另一個元素地址的指針,用該指針來表示數據元素之間的邏輯結構

C、順序結構數據元素存放的地址是連續的

D、數據算法的實現依賴於所采用的邏輯結構

參考答案:D

答案解析:

順序存儲結構:用數據元素在存儲器中的相對位置來表示數據元素之間的邏輯結構(關系)。 鏈式存儲結構:在每一個數據元素中增加一個存放另一個元素地址的指針(pointer ),用該指針來表示數據元素之間的邏輯結構(關系) 順序結構:數據元素存放的地址是連續的; 鏈式結構:數據元素存放的地址是否連續沒有要求。 數據的邏輯結構和物理結構是密不可分的兩個方面,一個算法的設計取決於所選定的邏輯結構,而算法的實現依賴於所采用的存儲結構

 

15.下面Http協議請求方式中不包括?

A、OPTIONS

B、HEAD

C、DELETE

D、SET

參考答案:D

答案解析:

沒有SET

16.下邊不是php的偽類型的是?

A、mixed

B、void

C、array|object

D、callable

E、以上都是

參考答案:E

答案解析:

答案是沒有答案、php的偽類型包含 mixed: 說明返回可包含多種類型 number: 說明一個參數可以是 integer 或者 float callback或者callable: 說明可以是回調函數 array|object: 說明既可以是array也可以是object void: 說明返回值無意義、作為入參表示不接受任何參數 這里想說的是、我們要打破常規、有些a、b、c、d中並沒有我們想要的、而不是每一個都必須有標准答案,重要的是我們學會一個知識點兒~、因為必須提交一個答案,所以~~~

 

17.文本文件和二進制文件的存取,錯誤的是?

A、用記事本打開二進制文件時, 出現亂碼是很必然了

B、二進制文件還是文本文件, 在存儲時都是一連串的0和1

C、打開方式是一樣的

D、二進制文件最小單位則是位

參考答案:C

答案解析:

打開方式不同, 這些0和1的處理就不同

 

18.不是PHP加密函數的是?

A、openssl_encrypt

B、json_encode

C、mcrypt_encrypt

D、md5

參考答案:B

答案解析:

md5 sha1 mcrypt\_encrypt openssl\_encrypt

 

19.什么是PHP的多維數組

A、PHP的值是多種數據類型

B、PHP的值也是數組類型

C、PHP的索引有數字和字母

D、以上都是

參考答案:B

答案解析:

多維數組:數組中的值也是數組

 

20.下面哪一個正則表達式用來驗證電子郵件(如: zhang.san_123@scse.com.cn )的格式最正確()

A、[_\.0-9a-z]@([0-9a-z]+\.)+[0-9a-z\.-]{2,6}

B、[_\.0~9a~z-]*@([0~9a~z-]+\.)+[0~9a~z\.]+

C、[_\.0-9a-z-]+@([0-9a-z-]+\.)+[0-9a-z\.]+

D、[_\.0~9a~z-]+@([0~9a~z-]+\.)+[0~9a~z]{2,6}

參考答案:C

答案解析:

C

 

 

 

21. )是一種客戶端腳本語言,它采用解釋方式在計算機上執行。

A、Python

B、Java

C、PHP

D、JavaScript

參考答案:D

答案解析:

JavaScript一種直譯式腳本語言,是一種動態類型、弱類型、基於原型的語言,內置支持類型。它的解釋器被稱為JavaScript引擎,為瀏覽器的一部分,廣泛用於客戶端的腳本語言,最早是在HTML(標准通用標記語言下的一個應用)網頁上使用,用來給HTML網頁增加動態功能。

 

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

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

B、結構型模式主要用於創建一組對象

C、結構型模式可以創建一組類的統一訪問接口

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

參考答案:B

答案解析:

結構型(structural):處理類或對象間的組合

 

23.PHP打印出前一天的時間格式是2006-5-10 22:21:21(2分)****************

A、echo date('Y-m-d H:i:s', strtotime('-1 days'));

B、echo date('Y-m-d H:i:s', strtotime('-1 day'));

C、echo date('Y-m-d H:i:s', strttime('-1 days'));

D、echo date('Y-n-d H:i:s', strtotime('-1 days'));

參考答案:A

答案解析:

echo date('Y-m-d H:i:s', strtotime('-1 days'));

 

24.下面關於數組和數據結構的說法錯誤的是?

A、棧 是 后進先出的線性表,可以隨意寫入和讀取數據

B、隊列 是先進先出的線性表,只允許后端插入,前端進行刪除操作

C、php中可以用 array_push 入棧,arrar_pop 實現出棧

D、php中用array_push入列,array_shift 出列

參考答案:A

答案解析:

只能在一端進行寫入和刪除的操作。

 

 

25.以下關於引用說法錯誤的是?

 A、引用不是C的指針

 B、引用不允許用兩個變量來指向同一個內容

 C、用引用可以傳遞變量

 D、可以將一個變量通過引用傳遞給函數,這樣該函數就可以修改其參數的值。

 參考答案:B

 答案解析:

 引用是允許用兩個變量來指向同一個內容的

 

 

26.數組的遍歷方式,下列錯誤的是?

 A、foreach

 B、each

 C、for

 D、list

參考答案:D

 

答案解析:

list只能把數組的元素變成變量,並不是遍歷。

聯合使用list()、each()和while循環遍歷數組

each()函數需要傳遞一個數組作為一個參數,返回數組中當前元素的鍵/值對,並向后移動數組指針到下一個元素的位置。

list()函數,這不是一個真正的函數,是PHP的一個語言結構。list()用一步操作給一組變量進行賦值。

 

 

 

27.不能匹配數字的正則表達式是

A、^{0-9}*$

B、^\d{n}$

C、^\d{n,}$

D、^\d{m,n}$

參考答案:A

答案解析:

{}是元字符號,A缺少元字符

 

28.PHP運行模式哪個不適合做http服務?

A、cgi模式

B、fastcgi模式

C、isapi模式

D、cli模式

參考答案:D

答案解析:

cgi模式、fastcgi模式、isapi模式都可以提供http服務 cli模式不能提供http服務

 

29. Linux 中,文件( )用於解析主機域名。

A、etc/hosts 

B、etc/host.conf 

C、etc/hostname

D、 etc/bind 

參考答案:A

答案解析:

etc/hosts 用於解析主機域名

 

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

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

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

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

C、<DIV ALIGN=”CENTER”><TABLE WIDTH=”512″></TABLE></DIV>

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

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

答案解析:

center標簽HTML5不推薦使用了...這種沒有語義的純樣式標簽是不符合w3c規范的,MDN上也有相關說明


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM