目錄
1、什麼是物件導向?主要特徵是什麼? 
2、SESSION 與COOKIE的區別是什麼,請從協議,產生的原因與作用說明?
3、HTTP 狀態中302、403、500程式碼意義?
4、請寫出資料型別(int char varchar datetime text)的意思;請問varchar 和char有什麼不同?
5、MyISAM和 InnoDB 的基本差異?索引結構如何實作?
7、請說明 PHP 中傳值與傳引用的差異。什麼時候傳值什麼時候傳引用?
8、在PHP中error_reporting這個函數有什麼作用?
9、說說你對快取技術的了解? 
10、現在程式設計中常採取MVC三層結構,請問MVC分別指哪三層,有什麼優點?
11、AJAX的優勢是什麼? 
12、程式的開發中,如何提升程式的運作效率?
13、對於大流量的網站,您採用什麼樣的方法來解決訪問量問題? 
14、語句include和require的區別是什麼?為避免多次包含同一文件,可用什麼語句代替它們?
15、foo()和@foo()之間有什麼區別? 
16、簡述php的垃圾收集機制。
17、如何達到PHP的安全最大化?
18、echo、print_r、print、var_dump區別 
19、寫出smarty模板的特點
20、如果需要原樣輸出使用者輸入的內容,在資料入庫前,要用哪個函數處理? 
首頁 後端開發 php教程 20道必知必會的PHP基礎面試題(附答案)

20道必知必會的PHP基礎面試題(附答案)

Jun 03, 2021 pm 06:42 PM
php 面試題

這篇文章跟大家分享20道PHP基礎面試題,帶你鞏固一波地基。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。

20道必知必會的PHP基礎面試題(附答案)

推薦學習:《PHP影片教學

1、什麼是物件導向?主要特徵是什麼? 

物件導向是程式的設計方式,它有利於提升程式的重複使用性,使程式結構更清晰。

主要特徵:封裝、繼承、多型。

2、SESSION 與COOKIE的區別是什麼,請從協議,產生的原因與作用說明?

http無狀態協議,不能區分用戶是否是從同一個網站上來的,同一個使用者請求不同的頁面不能看做是同一個使用者。

SESSION儲存在伺服器端,COOKIE保存在客戶端。 Session比較安全,cookie用某些手段可以修改,不安全。 Session依賴cookie進行傳遞。禁用cookie後,session不能正常使用。

Session的缺點:保存在伺服器端,每次讀取都會從伺服器讀取,對伺服器有資源消耗。 Session保存在伺服器端的檔案或資料庫中,預設保存在檔案中,檔案路徑由php設定檔的session.save_path指定。 Session文件是公有的。 

3、HTTP 狀態中302、403、500程式碼意義?

一二三四五原則:(即一:訊息系列;二:成功系列;三:重定向系列;四:請求錯誤系列;五:伺服器端錯誤系列。)

  • 302:暫時轉移成功,請求的內容已轉移到新位置
  • 403:禁止存取 
  • 500:伺服器內部錯誤 
  • #401:代表未授權

4、請寫出資料型別(int char varchar datetime text)的意思;請問varchar 和char有什麼不同?

  • Int 整數
  • char 定長字元
  • Varchar 變長字元
  • Datetime 日期時間型
  • # Text 文字類型

Varchar與char的差別:

char是固定長度的字元類型,分配多少空間,就佔用多長空間。 Varchar是可變長度的字元類型,內容有多大就佔用多大的空間,能有效節省空間。由於varchar類型是可變的,所以在資料長度改變的時,伺服器要進行額外的操作,所以效率比char類型低。 

5、MyISAM和 InnoDB 的基本差異?索引結構如何實作?

MyISAM類型不支援事務,表鎖,易產生碎片,要經常優化,讀寫速度較快,適合用於頻繁查詢的應用;

InnoDB類型支援事務,行鎖,有崩潰復原能力,讀寫速度比MyISAM慢,適合於插入和更新操作比較多的應用,空間佔用大,不支援全文索引等。

建立索引:alert table tablename add index 索引名稱(`欄位名稱`) 

6、isset() 和empty() 差異

isset判斷變數是否存在,可以傳入多個變量,若其中一個變數不存在則返回假;empty判斷變數是否為空為假,只可傳一個變量,如果為空為假則返回真。 

7、請說明 PHP 中傳值與傳引用的差異。什麼時候傳值什麼時候傳引用?

傳值傳遞:函數範圍內對值的任何改變在函數外部都會被忽略

傳引用傳遞:函數範圍內對值的任何改變在函數外部也能反映這些修改

優缺點:傳值傳遞時,php必須複製值。特別是對於大型的字串和物件來說,這將會是一個代價很大的操作。傳引用傳遞則不需要複製值,對於效能提升很有好處。 

8、在PHP中error_reporting這個函數有什麼作用?

設定PHP的報錯等級並傳回目前等級。 

9、說說你對快取技術的了解? 

快取技術是將動態內容快取到文件中,在一定時間內存取動態頁面直接呼叫快取文件,而不必重新存取資料庫。 

10、現在程式設計中常採取MVC三層結構,請問MVC分別指哪三層,有什麼優點?

MVC三層分別指:業務模型、視圖、控制器,由控制器層呼叫模型處理數據,然後將數據映射到視圖層進行顯示

優點是:

①可以實現程式碼的重複使用性,避免產生程式碼冗餘;

②M和V的實作程式碼分離,讓同一個程式可以使用不同的表現形式 

#

11、AJAX的優勢是什麼? 

ajax是非同步傳輸技術,可以透過javascript實現,也可以透過JQuery框架實現,實現局部刷新,減輕了伺服器的壓力,也提高了使用者體驗。 

12、程式的開發中,如何提升程式的運作效率?

  • 優化SQL語句,在查詢語句中盡量不使用select *,用哪個欄位查哪個欄位;

  • 少用子查詢可用表連接取代;

  • 少用模糊查詢;

  • 在資料表中建立索引;

  • 對程式中常用到的資料產生快取。

13、對於大流量的網站,您採用什麼樣的方法來解決訪問量問題? 

  • 有效使用緩存,增加快取命中率
  • 使用負載平衡
  • 對靜態檔案使用cdn進行儲存和加速
  • 想法減少資料庫的使用
  • 查看出現統計的瓶頸在哪裡
  • 反向代理 

14、語句include和require的區別是什麼?為避免多次包含同一文件,可用什麼語句代替它們?

區別:在失敗的時候:include產生一個warning,而require產生直接產生錯誤中斷require在運行前載入include在運行時載入代替:require_onceinclude_once 

15、foo()和@foo()之間有什麼區別? 

@代表所有warning忽略 

16、簡述php的垃圾收集機制。

php中的變數儲存在變數容器zval中,zval中除了儲存變數類型和值外,還有is_ref和refcount欄位。 refcount表示指向變數的元素個數,is_ref表示變數是否有別名。如果refcount為0時,就回收該變數容器。

如果一個zval的refcount減1之後大於0,它就會進入垃圾緩衝區。當緩衝區達到最大值後,回收演算法會循環遍歷zval,判斷是否為垃圾,並進行釋放處理。 

17、如何達到PHP的安全最大化?

怎麼避免SQL注入漏洞和XSS跨站腳本攻擊漏洞?答:基本原則:不對外界展示伺服器或程式設計細節(屏蔽錯誤),不相信任何使用者提交的資料(過濾使用者提交)。

18、echo、print_r、print、var_dump區別 

  • echo:語句結構;
  • print:是函數,有回傳值
  • print_r:能列印數組,物件
  • var_dump:能列印物件數組,並且帶資料型別 

19、寫出smarty模板的特點

速度快,編譯型,快取技術,外掛機制,強大的表現邏輯 

20、如果需要原樣輸出使用者輸入的內容,在資料入庫前,要用哪個函數處理? 

htmlspecialchars或htmlentities 

更多程式相關知識,請造訪:程式設計影片! !

以上是20道必知必會的PHP基礎面試題(附答案)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱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

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 Dec 24, 2024 pm 04:42 PM

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

我後悔之前不知道的 7 個 PHP 函數 我後悔之前不知道的 7 個 PHP 函數 Nov 13, 2024 am 09:42 AM

如果您是經驗豐富的PHP 開發人員,您可能會感覺您已經在那裡並且已經完成了。操作

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 Dec 20, 2024 am 11:31 AM

Visual Studio Code,也稱為 VS Code,是一個免費的原始碼編輯器 - 或整合開發環境 (IDE) - 可用於所有主要作業系統。 VS Code 擁有大量針對多種程式語言的擴展,可以輕鬆編寫

在PHP API中說明JSON Web令牌(JWT)及其用例。 在PHP API中說明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

php程序在字符串中計數元音 php程序在字符串中計數元音 Feb 07, 2025 pm 12:12 PM

字符串是由字符組成的序列,包括字母、數字和符號。本教程將學習如何使用不同的方法在PHP中計算給定字符串中元音的數量。英語中的元音是a、e、i、o、u,它們可以是大寫或小寫。 什麼是元音? 元音是代表特定語音的字母字符。英語中共有五個元音,包括大寫和小寫: a, e, i, o, u 示例 1 輸入:字符串 = "Tutorialspoint" 輸出:6 解釋 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。總共有 6 個元

您如何在PHP中解析和處理HTML/XML? 您如何在PHP中解析和處理HTML/XML? Feb 07, 2025 am 11:57 AM

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

解釋PHP中的晚期靜態綁定(靜態::)。 解釋PHP中的晚期靜態綁定(靜態::)。 Apr 03, 2025 am 12:04 AM

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? 什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? Apr 03, 2025 am 12:03 AM

PHP的魔法方法有哪些? PHP的魔法方法包括:1.\_\_construct,用於初始化對象;2.\_\_destruct,用於清理資源;3.\_\_call,處理不存在的方法調用;4.\_\_get,實現動態屬性訪問;5.\_\_set,實現動態屬性設置。這些方法在特定情況下自動調用,提升代碼的靈活性和效率。

See all articles