1、通過哪一個函式,可以把錯誤轉換為例外處理?
A:set_error_handler
B:error_reporting
C:error2exception
D:catch
正確答案:A
答案分析:set_error_handler () 可指定一個回呼函式,錯誤發生時,會自動通過指定的回呼函式處理,在回呼函式中拋出新的例外即可,
Github
2、下列哪個 shell 函式的描述是正確的?
A:shell 函式可以先呼叫后定義
B:shell 函式需使用關鍵字 function 定義
C:shell 函式內的變數可以宣告為區域變數
D:shell 函式只能通過 return 回傳值,1 是成功,0 是失敗
正確答案:C
答案分析:shell 函式必須先定義在呼叫;宣告時,無需使用關鍵字;通過 local 可以定義函式內的區域變數;shell 函式回傳值,0 是成功,非 0 是錯誤,其他選項正確
3、下列關于全文檢索技術的說法,不對的是:
A: Solr 是新一代的全文檢索組件,它比 Lucene 的搜索效率高很多,還能支持 HTTP 的訪問方式,PHP 呼叫 Solr 也很方便,
B: MySQL 中把一個欄位建立 FULLTEXT 索引,就可以實作全文檢索,目前 MyISAM 和 InnoDB 的 table 都支持 FULLTEXT 索引,
C: Sphinx 是一個基于 SQL 的全文檢索引擎,可以結合 MySQL 做全文搜索,它可以提供比資料庫本身更專業的搜索功能,
D: Lucene 附帶的二元分詞分析器 CJKAnalyzer 切詞速度很快,能滿足一般的全文檢索需要,
正確答案:A
答案分析: Solr 是新一代的全文檢索組件,它基于 Lucene,所以說它比 Lucene 快就是胡扯 :)
4、關于單例模式的說法,錯誤的是?
A:單例模式的目的是確保在全域環境中,一個類只能有一個實體存在
B:單利模式一般要講建構式設定為 private
C:只需要將建構式設定為 private 即可確保全域中只有一個實體
D:連接資料庫的功能通常用單例模式實作
正確答案:C
答案分析:建構式設定為 private,僅能確保無法通過 new 創建新實體,但仍可以通過 clone、反序列化等方式創建多個實體,
5、正則的引擎表述錯誤的是?
A 正則引擎主要可以分為兩大類:一種是 DFA,一種是 NFA,
B 一般而論,NFA 引擎則搜索更快一些,但是 DFA 以運算式為主導,更容易操縱,因此一般程式員更偏愛 DFA 引擎!
C NFA 運算式主導,DFA 文本主導.
D 可以使用是否支持忽略優先量詞和分組捕獲來判斷引擎型別:支持 NFA, 不支持 DFA
正確答案:B
答案分析:正確的說法應該是:一般而論,DFA 引擎則搜索更快一些,但是 NFA 以運算式為主導,更容易操縱,因此一般程式員更偏愛 NFA 引擎!
6、方框中的正則運算式能與以下哪些選項匹配?
/.\123\d/
A. **123
B. ****1234
C. 1234
D.123
正確答案:B
答案分析:本題的要點是理解這個正則運算式的含義 —— 從左往右,首先是零個或多個任意字符(.),跟著是一個星號(),然后是 123,最后是一個數字,因此答案是 B,
7、如下關于資料庫的說法,哪個是錯誤的?
A:為了效率資料庫可以有多個讀庫
B:資料庫可以用主從做熱備
C:資料庫不能提供多主多從架構
D: 資料庫主從是通過日志同步的
正確答案:C
答案分析: 資料庫可以提供多主多從架構,
8、下面哪個不是 XSS 漏洞的修復方式?
A: 對引數進行 htmlspecialchars 過濾
B: 對引數使用白名單過濾
C: 不允許輸入的內容顯示到瀏覽器
D: 禁止在 js 標簽內輸出用戶輸入的內容
正確答案:A 這類過濾可以解決尖括號型別的 xss,無法解決 js 標簽內的 xss
9、下列哪一項不是 PHP SAPI 模式?
A.ISAPI
B.CGI
C.FastCGI
D.RESTFUL APi
正確答案:D
答案分析:A~C 是最常用的模式,D 是一種介面的組織方式,
10、對一個大檔案進行逐行遍歷,如下方法性能較高的是?
A:寫一個實作了 IteratorAggregate 介面的類,通過該類使用 foreach 遍歷,
B:使用 file_get_contents 將檔案內容一次性載入記憶體,然后逐行遍歷,
C:通過 exec 函式,呼叫 shell 工具遍歷
D:使用別人寫的類別庫
正確答案:A
答案分析:使用 IteratorAggregate 可將檔案打開后通過移動指標的方式逐行遍歷,不受檔案大小影響,使用 file_get_contents 處理大檔案很容易導致 PHP 記憶體溢位;呼叫 exec 會產生額外的行程,影響性能;其他人寫的類別庫質量不一定高,
11、如下選項,哪個不是設計模式應該遵循的原則?
A:組合優于繼承
B:針對介面編程
C:盡可能降低耦合
D:盡量使用高性能的語法
正確答案:D
答案分析:設計模式的關注點在于代碼的可維護性和可復用性,D 選項不是設計模式關注的要點,
12、下列關于回溯的運算式錯誤的是?
A ab.lmn 匹配 abcdeflmnghijklmn 中的 abcdeflmnghijklmn
B ab.?lmn 匹配 abcdeflmnghijklmn 中的 abcdeflmn
C ab??c 匹配 abcdeflmnghijklmn 中的 abc
D .*lmn 匹配 abcdeflmnghijklmn 中的 abcdeflmn
正確答案:D
答案分析:D 是貪婪匹配,所以應該匹配到的結果是 abcdeflmnghijklmn
13、函式中如果使用了 try catch finally 語法結構,return 應該寫在哪兒?
A:finally 中
B:try 中
C:catch 中
D:任意位置
正確答案:A
答案分析:try 中 return 后 finally 會繼續執行,如果 finally 中也有 return,則最侄訓傳值為 finally 中 return 的值,
14、以下關于 NOSQL 的說法,不對的是:
A: Redis 支持字串、哈希、串列、集合、有序集合等資料結構,目前 Redis 不支持事務,
B: MongoDB 支持 CAP 定理中的 AP,MySQL 支持 CAP 中的 CA,全部都支持不可能存在,
C: MongoDB 不用先創建 Collection 的結構就可以直接插入資料,目前 MongoDB 不支持事務,
D: Memcache 既支持 TCP 協議,也支持 UDP 協議,我們可以把 PHP 的 Session 存放到 Memcache 中,
正確答案:A
答案分析:Redis 支持事務,
15、Innodb 鎖機制說法錯誤的是?
A:Innodb 提供了表鎖與行鎖兩種鎖機制
B:Innodb 的表鎖所會在表變更的時候觸發
C:Innodb 下 update 時會自動給涉及到的行加上排他鎖,并創建出一個鏡像副本, 此時進行 select 時查詢的是鏡像副本的資料
D:Innodb 行鎖狀態下讀不受影響,寫會受影響(涉及到的資料)
正確答案:A
16、下列哪個是創建一個每周三 01:00~04:00 每 3 分鐘執行執行一次的 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 時 4 時每分鐘執行一次 B:每周三的 1 時 4 時每 3 分鐘執行一次 C:滿足要求 D:每天的 1 時 4 時每 3 分鐘執行一次
17、在拆分之前,系統中很多串列和詳情頁所需的資料是可以通過 sql join 來完成的,而拆分后,資料庫可能是分布式在不同實體和不同的主機上,join 將變得非常麻煩,下面哪種方法不能有效解決這個問題?
A 全域表,系統中所有模塊都可能會依賴到的一些表在各個庫中都保存,
B 欄位冗余,“訂單表” 中保存 “賣家 Id” 的同時,將賣家的 “Name” 欄位也冗余,這樣查詢訂單詳情的時候就不需要再去查詢 “賣家用戶表”,
C 主從復制,將資料庫的讀寫分離,
D 資料同步,定時 A 庫中的 tbl_a 表和 B 庫中 tbl_b 關聯,可以定時將指定的表做主從同步,
正確答案:C
答案分析:主從復制,將資料庫的讀寫分離,只能擴容讀并發,并不能緩解跨庫 join 的問題,
18、關于網路 IO 模型,下列哪一項是正確的?
A.Select 比 Epoll 更快
B.nginx 使用的是 select 模型
C.apache 支持 select 和 epoll 兩種方式的切換
D.epoll 能支持更大的并發
正確答案:C
答案分析:A epoll 更快一些,B nginx 使用 epoll 模型,C apache 只支持 select
19、PHP 執行的時候有如下執行程序:Scanning (Lexing) - Compilation - Execution - Parsing,其含義分別為:
A:將 PHP 代碼轉換為語言片段 (Tokens)、將 Tokens 轉換成簡單而有意義的運算式、將運算式編譯成 Opocdes、順次執行 Opcodes
B:將 PHP 代碼轉換為語言片段 (Tokens)、將 Tokens 轉換成簡單而有意義的運算式、順次執行 Opcodes、將運算式編譯成 Opocdes
C:將 PHP 代碼轉換為語言片段 (Tokens)、將運算式編譯成 Opocdes、順次執行 Opcodes、將 Tokens 轉換成簡單而有意義的運算式
D:將 PHP 代碼轉換為語言片段 (Tokens)、將運算式編譯成 Opocdes、將 Tokens 轉換成簡單而有意義的運算式、順次執行 Opcodes
正確答案:C
答案分析:正確答案為 C,正確的順序為:Scanning (Lexing)、Parsing、Compilation、Execution
點關注,不迷路
好了各位,以上就是這篇文章的全部內容了,能看到這里的人呀,都是人才,之前說過,PHP方面的技術點很多,也是因為太多了,實在是寫不過來,寫過來了大家也不會看的太多,所以我這里把它整理成了PDF和檔案,如果有需要的可以
點擊進入暗號: 博客園


更多學習內容可以訪問【對標大廠】精品PHP架構師教程目錄大全,只要你能看完保證薪資上升一個臺階(持續更新)
以上內容希望幫助到大家,很多PHPer在進階的時候總會遇到一些問題和瓶頸,業務代碼寫多了沒有方向感,不知道該從那里入手去提升,對此我整理了一些資料,包括但不限于:分布式架構、高可擴展、高性能、高并發、服務器性能調優、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql優化、shell腳本、Docker、微服務、Nginx等多個知識點高級進階干貨需要的可以免費分享給大家,需要的可以加入我的PHP技術交流群953224940
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/3021.html
標籤:PHP
