首頁 後端開發 php教程 100道常見PHP面試題(附解析),增強你的知識儲備!

100道常見PHP面試題(附解析),增強你的知識儲備!

May 11, 2022 am 10:45 AM
php 面試

這篇文章為大家整理分享100道常見PHP面試題(附答案分享),帶你整理基礎知識,增強你的PHP知識儲備。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。

100道常見PHP面試題(附解析),增強你的知識儲備!

相關推薦:2022年PHP面試題大匯總(收藏)

100 個常見的PHP 面試題

1) PHP是什麼?

PHP是一種基於腳本的web語言,開發者可以動態的建立網頁。

2) PHP的全名?

Hypertext Preprocessor(超文本預處理器)。

3) PHP與哪些程式語言相似?

PHP語法類似Perl和C。

5) 實際使用的PHP是哪個版本?

建議使用版本7。

6) 如何從命令列執行PHP腳本?

在命令列介面(CLI),指定要執行的腳本的檔案名,如下所示:

php script.php
登入後複製

7) 如何從命令列介面執行互動式PHP Shell?

將PHP CLI程式與-a選項一起使用,如下所示:

php -a
登入後複製

8) 正確開始和結束PHP程式碼區塊的最常見的兩種方式是什麼?

開始和結束PHP腳本的兩個最常見的方式是:

 <?php [   ---  PHP code---- ] ?> and <? [---  PHP code  ---] ?>
登入後複製

9) 如何直接將輸出顯示給瀏覽器?

將輸出直接顯示給瀏覽器,我們必須使用特殊標記<? =and? >。

11) PHP是否支援多重繼承?

PHP只支援單繼承。 PHP的類別使用關鍵字extends繼承另一個類別

12) 使用final修飾的類別和方法代表什麼意思?

final是在PHP5版本引入的,它修飾的類別不允許被繼承,它修飾的方法不允許被重寫。

13) PHP中如何比較兩個物件?

在PHP中,我們可以使用運算子==來比較兩個物件是否為同一個類別的實例,並且擁有相同的屬性和屬性值。
也可以是使用運算子===來比較兩個物件是否引用了相同類別的相同實例。

14) PHP和HTML是如何互動的?

可以透過PHP腳本產生HTML,也可以將訊息從HTML傳遞到PHP。

15) 透過表單或URL傳遞值時需要哪種類型的運算?

透過表單或URL傳遞值,則需要使用htmlspecialchars()urlencode()對它們進行編碼和解碼。

16) PHP和Javascript是如何互動的?

PHP和Javascript無法直接進行交互,因為PHP是一種伺服器端語言,而Javascript是一種瀏覽器語言。但是,我們可以交換變量,因為PHP可以產生將由瀏覽器執行的Javascript程式碼,並且可以透過URL將特定的變數傳回PHP。

17) PHP處理圖片需要增加什麼擴充功能?

需要GD庫來執行處理圖片功能。

18) 函數imagetypes()的函數?

imagetypes()給出目前版本的GD-PHP支援的影像格式和類型。

19)取得圖片屬性(size, width, 和 height)的函數是什麼?

取得圖片大小size:getimagesize();取得圖片寬度width:imagesx();取得圖片高度height:imagesy()。

20) include()require()在執行失敗的情況下有什麼不同?

include() 將會產生警告,不影響後續程式的執行。 require() 將會產生一個致命錯誤,後續程式停止執行。

21) require() 和require_once() 之間的主要差異是?

require() 和require_once() 執行同樣的任務,除了第二個函數在執行前檢查PHP腳本是否已經包含。

(與include_once() 和include() 相同)

#22) 如何使用PHP 腳本顯示文字?

##可以使用以下兩種方法:

<!--?php echo "Method 1"; print "Method 2"; ?-->
登入後複製

23) 如何使用PHP 顯示變數資訊並使人類可讀?

為了能夠顯示人類可讀的結果,我們使用了print_r() 。

24) 如何為PHP 腳本設定無限執行時間?

在腳本開始處新增set_time_limit(0) 設定為無限執行時間,以避免PHP 錯誤「超過最大執行時間」。也可以在 php.ini 檔案中指定它。

25) PHP 錯誤'Parse error in PHP - unexpected T_variable at line x' 意思是?

這是一個PHP 語法錯誤,表示x 行的錯誤會停止解析和執行程式。

26) 如何將資料匯出到 Excel 檔案中?

最常见和常用的方法是将数据转换为Excel支持的格式。例如,可以编写 .csv 文件,例如选择逗号作为字段之间的分隔符,然后使用 Excel 打开文件。

27) file_get_contents() 函数的作用是?

file_get_contents() 可读取文件并将其存储到字符串变量中。

28) 如何使用 PHP 脚本 连接 MySQL 数据库?

为了连接到 MySQL 数据库,必须使用 mysql_connect() 函数:

<!--?php $database = mysqli_connect("HOST", "USER_NAME", "PASSWORD"); mysqli_select_db($database,"DATABASE_NAME"); ?-->
登入後複製

29) mysql_pconnect() 函数的用途为?

mysql_pconnect() 函数确保与数据库的持久连接, 这意味着 PHP 脚本结束时连接不会关闭。

PHP7.0 及以上版本已不支持该函数。

30) 如何在 PHP 中处理 MySQL 的结果集?

可以使用 mysqli_fetch_array, mysqli_fetch_assoc, mysqli_fetch_object or mysqli_fetch_row 函数处理。

31) 如何知晓结果集返回的行数?

mysqli_num_rows() 函数返回了结果集的行数。

32) 哪个函数为我们提供了查询所影响的条数?

mysqli_affected_rows() 返回受SQL查询影响的条目数。

33) mysqli_fetch_object() 和 mysqli_fetch_array() 函数的区别在于?

mysqli_fetch_object() 函数收集第一个单个匹配记录,而  mysqli_fetch_array() 从表中收集所有匹配记录。

34) 如何使用 GET 方法访问通过 URL 发送的数据?

要访问通过 GET 方法发送的数据,我们使用 $ _GET 数组,如下所示:

www.url.com?var=value
$variable = $_GET["var"]; 现在将包含 'value'
登入後複製

35) 如何使用 POST 方法访问通过 URL 发送的数据?

要访问以这种方式发送的数据,请使用 $ _POST 数组。

想象一下,当用户单击「提交到帖子」表单时,表单上有一个名为「var」的表单字段,然后您可以像这样访问值:

$_POST["var"];
登入後複製

36) 如何检查给定变量的值为数字?

可以使用专用函数 is_numeric() 来检查它是否为数字。

37) 如何检查给定变量的值为字母和数字字符?

可以使用专用函数 ctype_alnum 来检查它是否为字母数字字符。

38) 如何检查给定变量是否为空?

如果我们要检查变量是否具有值,可以使用 empty() 函数。

39) unlink() 函数的作用是?

unlink() 函数专用于文件系统处理。它用于删除文件。

40) unset() 函数的作用是 ?

unset() 函数专用于变量管理。它将使变量变为未定义。

41) 在将数据存储到数据库之前如何转义数据?

addslashes 函数使我们能够在将数据存储到数据库之前对其进行转义。

42) 如何从字符串中删除转义字符?

使用 stripslash 函数,我们可以删除字符串中的转义字符。

43) 我们如何自动转义传入的数据?

我们必须在PHP的配置文件中启用魔术引号项。

44) get_magic_quotes_gpc() 函数的作用是?

函数 get_magic_quotes_gpc() 告诉我们魔术引号是否已打开。

45) 是否可以从数据中删除 HTML 标签?

strip_tags() 函数使我们能够从HTML标签中清除字符串。

46) 函数中的静态变量有什么用?

静态变量仅在函数中首次定义,并且其值可以在函数调用期间进行如下修改:

<!--?php function testFunction() { static $testVariable = 1; echo $testVariable; $testVariable++; } testFunction();        //1 testFunction();        //2 testFunction();        //3 ?-->
登入後複製

47) 如何定义PHP脚本函数中可访问的变量??

使用 global 关键字。

48) 如何从函数中返回值?

使用指令 ‘return $value;’ 。

49) 用于哈希密码最便捷的哈希方法是什么?

最好使用本身支持几种哈希算法的 crypt() 或支持比 crypt() 更多变体的函数hash(),而不是使用常见的哈希算法,如 MD5、SHA1 或 sha256,因为它们被认为是存在安全问题的。因此,使用这些算法的哈希密码可能会产生漏洞。

50) 哪种加密扩展可以生成和验证数字签名?

PHP-OpenSSL扩展提供了几种加密操作,包括数字签名的生成和验证。

51) 如何在 PHP 脚本中定义常量?

define() 指令允许我们按如下方式定义常量:

define ("ACONSTANT", 123);
登入後複製

52) 如何通过引用传递变量?

为了能够通过引用传递变量,我们在变量前面使用了 & 符号,如下所示$var1=&$var2

53) 整数12和字符串“13”的比较在PHP中是否有效?

“13” 和 12 可以在 PHP 中进行比较,因为它将所有内容都强制转换为整数类型。

54) 如何在PHP中强制转换类型?

输出类型的名称必须在要强制转换的变量前的括号中指定,如下所示:

  • (int), (integer) - 强制转换为整型

  • (bool), (boolean) - 强制转换为布尔值

  • (float), (double), (real) - 强制转换为浮点型

  • (string) - 强制转换为字符串

  • (array) - 强制转换为数组

  • (object) - 强制转换为对象

55) 条件语句何时以 endif 结尾?

当最初的if后面跟着:然后是没有大括号的代码块时。

56) PHP中如何使用三元条件运算符?

它由三个表达式组成:一个条件和两个操作数,它们描述在指定条件为true或false时应执行的指令,如下所示:

Expression_1?Expression_2 : Expression_3;
登入後複製

57) 函数 func_num_args() 的作用是什么?

函数 func_num_args() 用于提供传递给函数的参数数量

58) 如果变量$ var1设置为10,而$ var2设置为字符var1,那么$$ var2的值是多少?

$$var2 包含值10。

59) 通过::访问类意味着什么?

::用于访问不需要对象初始化的静态方法。

60) 在 PHP 中,对象是按值传递还是按引用传递?

对象按值传递。

** 61)是否在类构造函数中隐式调用了Parent构造函数?**

不,必须显式调用父构造函数,如下所示:

parent::constructor($value)
登入後複製

** 62)__sleep__wakeup有什么区别?**

__sleep返回所有需要保存的变量的数组,而__wakeup检索它们。

** 63)更快些吗?**

1-结合以下两个变量:

$ variable1 ='你好';$ variable2 ='世界';$ variable3 = $ variable1.$ variable2;
登入後複製

要么

2- $variable3 = "$variable1$variable2";
登入後複製

$variable3将包含“你好 世界”。第一个代码比第二个代码快,特别是对于大型数据集。

** 64)会话的定义是什么?**

会话是一个逻辑对象,使我们能够跨多个PHP页面保留临时数据。

** 65)如何在PHP中启动会话?**

使用session_start()函数可以激活会话。

** 66)如何传播会话ID?**

您可以通过CookieURL参数传播会话ID。

** 67)永久性Cookie的含义是什么?**

永久性cookie永久存储在浏览器计算机上的cookie文件中。默认情况下,cookies是临时的,如果我们关闭浏览器,cookies将被删除。

** 68)会议何时结束?**

会话在PHP脚本完成执行时自动结束,但可以使用session_write_close()手动结束。

** 69)session_unregister()session_unset()有什么区别?**

session_unregister()函数从当前会话中注销全局变量,而session_unset()函数则释放所有会话变量。

** 70)$GLOBALS是什么意思?**

$GLOBALS是一个关联数组,包括对当前在脚本的全局范围内定义的所有变量的引用。
71) $ _SERVER 是什么意思?

$_SERVER  是一个包含 Web 服务器创建信息的数组,包括了路径,头部和脚本位置等。

72)$ _FILES 是什么意思?

$_FILES 是一个包含通过 HTTP POST 方式上传到当前脚本的项目的数组。

73)$ _FILES ['userfile'] ['name' ]$ _FILES ['userfile'] ['tmp_name'] 有什么区别

$ _FILES ['userfile'] ['name']  表示客户端文件的原始名称,

$_FILES['userfile']['tmp_name'] 表示服务器上存储的文件的临时文件名。

*74) 上传文件出问题时,如何获取错误信息 *

$_FILES['userfile']['error']  包括了与上传文件有关的错误代码。

75)如何更改要上传的文件大小的最大值?

可通过更改  php.ini 中的 upload_max_filesize 来更改要上传的文件的最大大小。

76)$ _ENV 是什么意思?

通过环境方式传递给当前脚本的变量的数组。

77)$ _COOKIE 是什么意思?

通过 HTTP Cookies 方式传递给当前脚本的变量的数组。

78)变量的作用域是什么意思?

变量的作用域定义了变量的环境上下文。在大多数情况下,PHP 变量只有一个变量域。这一作用域也涵盖了 includerequire 的文件。

79)’BITWISE AND’ 运算符和 ‘LOGICAL AND’ 运算符之间有什么区别?

$a and $b -  只有在 $a$b 都为 true 的情况下才为 true
$a & $b -  把 $a$b 中都为 1 的位设为 1

80)两个主要的字符串运算符是什么?

. 运算符返回左右两边字符串的拼接结果。 .= 运算符将右边的结果附加到左边的参数上。

81) 数组运算符  ‘===’  是什么意思?

$a === $b 如果 $a 和 $b 具有相同顺序和相同类型的键/值对,则为 TRUE 。

82)  $a != $b 和 $a !== $b有什么区别?

!=  表示不等于 ( 如果 $a 不等于 $b 则为TRUE) ; !== 表示 不全等 ( 如果$a 不完全等于 $b则为TRUE).

83) 如何确定 PHP 变量是否是某个类的实例化对象?

我们用  instanceof 能够验证 PHP 变量是否是某个类的实例话对象。

84) goto 语句有什么用?

goto语句可以放置在PHP程序中以启用跳转。 目标由后跟冒号的标签指向,指令被指定为goto语句,后跟所需的目标标签。

85) Exception::getMessage 和 Exception:: getLine有什么区别?

Exception::getMessage 让我们得到异常消息,  Exception::getLine 让我们得到发生异常的行。

86) 表达式 Exception::__toString 是什么意思?

Exception::__toString 给出异常的字符串表示形式。

87) 如何解析配置文件?

函数 parse_ini_file() 使我们能够加载在文件名中指定的 ini 文件,并以关联数组的形式返回其中的设置。

88) 我们如何确定变量是否已经设置?

布尔函数 isset 确定变量是否已经设置并且该变量不是NULL。

89) 函数 strstr() 和 stristr() 有什么区别?

字符串函数 strstr(全部字符串, 要查找的字符串) 返回从首次出现到全部字符串结束的部分字段串。 这个函数是区分大小写的。 stristr() 除了不区分大小写之外,与 strstr() 完全相同。

90) for 和 foreach 有什么区别?

for 表示如下:

for (expr1; expr2; expr3)
登入後複製

expr1 在开头执行一次。 在每次迭代中,expr2 都会被评估。 如果评估结果是 TRUE, 循环继续, 并执行 for 中的语句。 如果评估结果是 FALSE, 循环结束。expr3 在每次迭代结束时进行测试。

但是,foreach提供了一种遍历数组的简便方法,并且仅与数组和对象一起使用。

91) 是否可以提交带有专用按钮的表单?

可以使用 document.form.submit() 函数提交表单。 例如:

92)  ereg_replace() 和 eregi_replace()有什么区别?

函数eregi_replace() 与 ereg_replace() 相同,只是在匹配字母字符时忽略大小写区别。

93) 是否可以保护查询字符串中的特殊字符?

是的, 我们使用 urlencode() 函数 来保护特殊字符。

94) PHP 中可能出现的三类错误是什么?

三类基本错误类别是: 通知 (非关键错误)、警告 (严重错误) 和 致命错误 (严重错误)。

95) 字符串 .34 和 .34 有什么区别

.34 是八进制 34 , .34 是十六进制 34.

96) 我们如何通过页面之间的导航传递变量?

可以使用会话,cookie 或隐藏的表单字段在 PHP 页面之间传递变量。

97) 是否可以延长 PHP 脚本的执行时间

使用 set_time_limit(int seconds) 可以延长 PHP 脚本的执行时间。 默认限制为30秒。

98) 是否可以销毁 Cookie ?

是的,可以通过设置cookie的过期时间来实现。

99) PHP中的默认会话时间是什么?

php中的默认会话时间是直到浏览器关闭为止。

100) 是否可以在 PHP中 使用 COM 组件?

是的, 可以在框架中提供的 PHP 脚本中集成(分布式)组件对象模型组件((D)COM)。

101) 解释是否可以在多个 PHP 项目之间共享单个 memcache 实例?

是的,可以在多個專案之間共用一個Memcache實例。 Memcache是​​一個記憶體儲存空間,您可以在一個或多個伺服器上執行memcache。您也可以將客戶端配置為與特定實例集進行對話。因此,您可以在同一台主機上執行兩個不同的Memcache進程,但它們是完全獨立的。除非您已經對資料進行了分區,否則有必要知道從哪個實例獲取資料或將資料放入哪個實例。

102) 解釋你對PHP進行更改時如何更新Memcached?

當PHP更改時,您可以透過以下方式更新Memcached

  • #主動清除快取: 進行插入或更新時清除快取
  • 重置快取: 與第一種方法類似,但不僅僅是刪除鍵並等待下一個資料刷新快取的請求,而是在插入或更新後重置值。

原文網址:https://www.guru99.com/php-interview-questions-answers.html

翻譯網址:https:// learnku.com/php/t/38272

#推薦學習:《PHP影片教學

以上是100道常見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

在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,實現動態屬性設置。這些方法在特定情況下自動調用,提升代碼的靈活性和效率。

PHP和Python:比較兩種流行的編程語言 PHP和Python:比較兩種流行的編程語言 Apr 14, 2025 am 12:13 AM

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

PHP:網絡開發的關鍵語言 PHP:網絡開發的關鍵語言 Apr 13, 2025 am 12:08 AM

PHP是一種廣泛應用於服務器端的腳本語言,特別適合web開發。 1.PHP可以嵌入HTML,處理HTTP請求和響應,支持多種數據庫。 2.PHP用於生成動態網頁內容,處理表單數據,訪問數據庫等,具有強大的社區支持和開源資源。 3.PHP是解釋型語言,執行過程包括詞法分析、語法分析、編譯和執行。 4.PHP可以與MySQL結合用於用戶註冊系統等高級應用。 5.調試PHP時,可使用error_reporting()和var_dump()等函數。 6.優化PHP代碼可通過緩存機制、優化數據庫查詢和使用內置函數。 7

See all articles