搜尋
首頁後端開發php教程來會會有點水平的PHP基礎面試題

這篇文章向大家彙整有點程度的PHP基礎面試題,有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。

1、透過哪一個函數,可以把錯誤轉換成異常處理?

A:set_error_handler

B:error_reporting

C:error2exception

D:catch

#正確答案:*A *

答案分析:set_error_handler () 可指定一個回呼函數,當錯誤發生時,會自動透過指定的回呼函數處理。在回調函數中拋出新的異常即可。

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、方格中的正規表示式能與下列哪一個選項相符?

/.Sd/

A. 123

B. **1234

C. 1234

D.123

正確答案:B

答案分析:本題的重點是理解這個正規表示式的意思- 從左到右,首先是零個或多個任意字元( .),跟著是一個星號(),然後是123,最後是一個數字。因此答案是 B。

7、如下關於資料庫的說法,哪個是錯的?

A:為了效率資料庫可以有多個讀庫

B:資料庫可以用主從做熱備

C:資料庫不能提供多主多從架構

D: 資料庫主從是透過日誌同步的

正確答案:C

答案分析:資料庫可以提供多主多從架構。

8、下列哪一個不是 XSS 漏洞的修復方式?

A: 對參數進行htmlspecialchas 過濾

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 abcdefbddef

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 能支援更大的同時

正確答案:D

答案分析: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基礎面試題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:learnku。如有侵權,請聯絡admin@php.cn刪除
您如何防止與會議有關的跨站點腳本(XSS)攻擊?您如何防止與會議有關的跨站點腳本(XSS)攻擊?Apr 23, 2025 am 12:16 AM

要保護應用免受與會話相關的XSS攻擊,需採取以下措施:1.設置HttpOnly和Secure標誌保護會話cookie。 2.對所有用戶輸入進行輸出編碼。 3.實施內容安全策略(CSP)限制腳本來源。通過這些策略,可以有效防護會話相關的XSS攻擊,確保用戶數據安全。

您如何優化PHP會話性能?您如何優化PHP會話性能?Apr 23, 2025 am 12:13 AM

优化PHP会话性能的方法包括:1.延迟会话启动,2.使用数据库存储会话,3.压缩会话数据,4.管理会话生命周期,5.实现会话共享。这些策略能显著提升应用在高并发环境下的效率。

什麼是session.gc_maxlifetime配置設置?什麼是session.gc_maxlifetime配置設置?Apr 23, 2025 am 12:10 AM

theSession.gc_maxlifetimesettinginphpdeterminesthelifespanofsessiondata,setInSeconds.1)它'sconfiguredinphp.iniorviaini_set().2)abalanceisesneededeededeedeedeededto toavoidperformance andunununununexpectedLogOgouts.3)

您如何在PHP中配置會話名?您如何在PHP中配置會話名?Apr 23, 2025 am 12:08 AM

在PHP中,可以使用session_name()函數配置會話名稱。具體步驟如下:1.使用session_name()函數設置會話名稱,例如session_name("my_session")。 2.在設置會話名稱後,調用session_start()啟動會話。配置會話名稱可以避免多應用間的會話數據衝突,並增強安全性,但需注意會話名稱的唯一性、安全性、長度和設置時機。

您應該多久再生一次會話ID?您應該多久再生一次會話ID?Apr 23, 2025 am 12:03 AM

會話ID應在登錄時、敏感操作前和每30分鐘定期重新生成。 1.登錄時重新生成會話ID可防會話固定攻擊。 2.敏感操作前重新生成提高安全性。 3.定期重新生成降低長期利用風險,但需權衡用戶體驗。

如何在PHP中設置會話cookie參數?如何在PHP中設置會話cookie參數?Apr 22, 2025 pm 05:33 PM

在PHP中設置會話cookie參數可以通過session_set_cookie_params()函數實現。 1)使用該函數設置參數,如過期時間、路徑、域名、安全標誌等;2)調用session_start()使參數生效;3)根據需求動態調整參數,如用戶登錄狀態;4)注意設置secure和httponly標誌以提升安全性。

在PHP中使用會議的主要目的是什麼?在PHP中使用會議的主要目的是什麼?Apr 22, 2025 pm 05:25 PM

在PHP中使用會話的主要目的是維護用戶在不同頁面之間的狀態。 1)會話通過session_start()函數啟動,創建唯一會話ID並存儲在用戶cookie中。 2)會話數據保存在服務器上,允許在不同請求間傳遞數據,如登錄狀態和購物車內容。

您如何在子域中分享會議?您如何在子域中分享會議?Apr 22, 2025 pm 05:21 PM

如何在子域名間共享會話?通過設置通用域名的會話cookie實現。 1.在服務器端設置會話cookie的域為.example.com。 2.選擇合適的會話存儲方式,如內存、數據庫或分佈式緩存。 3.通過cookie傳遞會話ID,服務器根據ID檢索和更新會話數據。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版