這篇文章向大家彙整有點程度的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:單利模式一般要講建構函式設定為privateC:只需要將建構函式設為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. 123B. **1234C. 1234D.123正確答案:B
答案分析:本題的重點是理解這個正規表示式的意思- 從左到右,首先是零個或多個任意字元( .),跟著是一個星號(),然後是123,最後是一個數字。因此答案是 B。 7、如下關於資料庫的說法,哪個是錯的? A:為了效率資料庫可以有多個讀庫B:資料庫可以用主從做熱備C:資料庫不能提供多主多從架構D: 資料庫主從是透過日誌同步的正確答案:C
答案分析:資料庫可以提供多主多從架構。 8、下列哪一個不是 XSS 漏洞的修復方式? A: 對參數進行htmlspecialchas 過濾B: 對參數使用白名單過濾C: 不允許輸入的內容顯示到瀏覽器# D: 禁止在js 標籤內輸出使用者輸入的內容正確答案:*A *
答案分析:這類過濾可以解決尖括號類型的xss,無法解決js 標籤內的xss9、下列哪一項不是PHP SAPI 模式? A.ISAPIB.CGIC.FastCGID.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.shB:/3 1,4 3 /bin/bash /home/sijiaomao/ok.sh C:/3 1-4 3 /bin/bash /home/sijiaomao/ok.shD:/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、順次執行OpcodesB:將PHP 程式碼轉換為語言片段(Tokens)、將Tokens 轉換成簡單而有意義的表達式、順次執行Opcodes、將表達式編譯成OpocdesC:將PHP 程式碼轉換為語言片段(Tokens)、將表達式編譯成Opocdes、順次執行Opcodes、將Tokens 轉換成簡單而有意義的表達式
#D:將PHP 程式碼轉換為語言片段(Tokens)、將表達式編譯成Opocdes、將Tokens 轉換成簡單而有意義的表達式、順次執行Opcodes
正確答案:C
答案分析:正確答案為C,正確的順序為:Scanning (Lexing)、Parsing、Compilation、Execution
以上是來會會有點水平的PHP基礎面試題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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

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

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

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

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

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

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

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


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

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

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

Atom編輯器mac版下載
最受歡迎的的開源編輯器

Dreamweaver Mac版
視覺化網頁開發工具

SublimeText3 Linux新版
SublimeText3 Linux最新版