国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

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

青燈夜游
發(fā)布: 2022-05-11 10:45:14
轉(zhuǎn)載
37601人瀏覽過

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

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

相關(guān)推薦:2022年P(guān)HP面試題大匯總(收藏)

100 個常見的 PHP 面試題

1) PHP是什么?

PHP是一種基于腳本的web語言,開發(fā)者可以動態(tài)的創(chuàng)建網(wǎng)頁。

立即學(xué)習(xí)PHP免費學(xué)習(xí)筆記(深入)”;

2) PHP的全稱?

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

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

PHP語法類似于Perl和C。

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

推薦使用版本7。

6) 如何從命令行執(zhí)行PHP腳本?

在命令行界面(CLI),指定要執(zhí)行的腳本的文件名,如下所示:

php script.php
登錄后復(fù)制

7) 如何從命令行界面運行交互式PHP Shell?

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

php -a
登錄后復(fù)制

8) 正確開始和結(jié)束PHP代碼塊的最常見的兩種方式是什么?

開始和結(jié)束PHP腳本的兩種最常見的方式是:

 <?php [   ---  PHP code---- ] ?> and <? [---  PHP code  ---] ?>
登錄后復(fù)制

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

將輸出直接顯示給瀏覽器,我們必須使用特殊標(biāo)記。

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

PHP只支持單繼承。PHP的類使用關(guān)鍵字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是一種服務(wù)器端語言,而Javascript是一種瀏覽器語言。但是,我們可以交換變量,因為PHP可以生成將由瀏覽器執(zhí)行的Javascript代碼,并且可以通過URL將特定的變量傳遞回PHP。

17) PHP處理圖片需要添加什么擴展?

需要GD庫來執(zhí)行處理圖片功能。

18) 函數(shù)imagetypes()的功能?

imagetypes()給出當(dāng)前版本的GD-PHP支持的圖像格式和類型。

19)獲取圖片屬性(size, width, 和 height)的函數(shù)是什么?

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

20) include() 和 require()在執(zhí)行失敗的情況下有什么不同?

include() 將會產(chǎn)生一個警告,不影響后續(xù)程序的執(zhí)行。require() 將會產(chǎn)生一個致命錯誤,后續(xù)程序停止執(zhí)行。

21) require() 和 require_once() 之間的主要區(qū)別是?

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

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

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

可以使用以下兩種方法:

<!--?php echo "Method 1"; print "Method 2"; ?-->
登錄后復(fù)制

23) 如何使用 PHP 顯示變量信息并使人類可讀?

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

24) 如何為 PHP 腳本設(shè)置無限執(zhí)行時間?

在腳本開始處添加 set_time_limit(0) 設(shè)置為無限執(zhí)行時間,以避免 PHP 錯誤“超過最大執(zhí)行時間”。也可以在 php.ini 文件中指定它。

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

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

26) 如何將數(shù)據(jù)導(dǎo)出到 Excel 文件中?

最常見和常用的方法是將數(shù)據(jù)轉(zhuǎn)換為Excel支持的格式。例如,可以編寫 .csv 文件,例如選擇逗號作為字段之間的分隔符,然后使用 Excel 打開文件。

27) file_get_contents() 函數(shù)的作用是?

file_get_contents() 可讀取文件并將其存儲到字符串變量中。

28) 如何使用 PHP 腳本 連接 MySQL 數(shù)據(jù)庫?

為了連接到 MySQL 數(shù)據(jù)庫,必須使用 mysql_connect() 函數(shù):

<!--?php $database = mysqli_connect("HOST", "USER_NAME", "PASSWORD"); mysqli_select_db($database,"DATABASE_NAME"); ?-->
登錄后復(fù)制

29) mysql_pconnect() 函數(shù)的用途為?

mysql_pconnect() 函數(shù)確保與數(shù)據(jù)庫的持久連接, 這意味著 PHP 腳本結(jié)束時連接不會關(guān)閉。

PHP7.0 及以上版本已不支持該函數(shù)。

30) 如何在 PHP 中處理 MySQL 的結(jié)果集?

可以使用 mysqli_fetch_array, mysqli_fetch_assoc, mysqli_fetch_object or mysqli_fetch_row 函數(shù)處理。

31) 如何知曉結(jié)果集返回的行數(shù)?

mysqli_num_rows() 函數(shù)返回了結(jié)果集的行數(shù)。

32) 哪個函數(shù)為我們提供了查詢所影響的條數(shù)?

mysqli_affected_rows() 返回受SQL查詢影響的條目數(shù)。

33) mysqli_fetch_object() 和 mysqli_fetch_array() 函數(shù)的區(qū)別在于?

mysqli_fetch_object() 函數(shù)收集第一個單個匹配記錄,而 ?mysqli_fetch_array() 從表中收集所有匹配記錄。

34) 如何使用 GET 方法訪問通過 URL 發(fā)送的數(shù)據(jù)?

要訪問通過 GET 方法發(fā)送的數(shù)據(jù),我們使用 $ _GET 數(shù)組,如下所示:

www.url.com?var=value
$variable = $_GET["var"]; 現(xiàn)在將包含 'value'
登錄后復(fù)制

35) 如何使用 POST 方法訪問通過 URL 發(fā)送的數(shù)據(jù)?

要訪問以這種方式發(fā)送的數(shù)據(jù),請使用 $ _POST 數(shù)組。

想象一下,當(dāng)用戶單擊「提交到帖子」表單時,表單上有一個名為「var」的表單字段,然后您可以像這樣訪問值:

$_POST["var"];
登錄后復(fù)制

36) 如何檢查給定變量的值為數(shù)字?

可以使用專用函數(shù) is_numeric() 來檢查它是否為數(shù)字。

37) 如何檢查給定變量的值為字母和數(shù)字字符?

可以使用專用函數(shù) ctype_alnum 來檢查它是否為字母數(shù)字字符。

38) 如何檢查給定變量是否為空?

如果我們要檢查變量是否具有值,可以使用 empty() 函數(shù)。

39) unlink() 函數(shù)的作用是?

unlink() 函數(shù)專用于文件系統(tǒng)處理。它用于刪除文件。

40) unset() 函數(shù)的作用是 ?

unset() 函數(shù)專用于變量管理。它將使變量變?yōu)槲炊x。

41) 在將數(shù)據(jù)存儲到數(shù)據(jù)庫之前如何轉(zhuǎn)義數(shù)據(jù)?

addslashes 函數(shù)使我們能夠在將數(shù)據(jù)存儲到數(shù)據(jù)庫之前對其進行轉(zhuǎn)義。

42) 如何從字符串中刪除轉(zhuǎn)義字符?

使用 stripslash 函數(shù),我們可以刪除字符串中的轉(zhuǎn)義字符。

43) 我們?nèi)绾巫詣愚D(zhuǎn)義傳入的數(shù)據(jù)?

我們必須在PHP的配置文件中啟用魔術(shù)引號項。

44) get_magic_quotes_gpc() 函數(shù)的作用是?

函數(shù) get_magic_quotes_gpc() 告訴我們魔術(shù)引號是否已打開。

45) 是否可以從數(shù)據(jù)中刪除 HTML 標(biāo)簽?

strip_tags() 函數(shù)使我們能夠從HTML標(biāo)簽中清除字符串。

46) 函數(shù)中的靜態(tài)變量有什么用?

靜態(tài)變量僅在函數(shù)中首次定義,并且其值可以在函數(shù)調(diào)用期間進行如下修改:

<!--?php function testFunction() { static $testVariable = 1; echo $testVariable; $testVariable++; } testFunction();        //1 testFunction();        //2 testFunction();        //3 ?-->
登錄后復(fù)制

47) 如何定義PHP腳本函數(shù)中可訪問的變量??

使用 global 關(guān)鍵字。

48) 如何從函數(shù)中返回值?

使用指令 ‘return $value;’ 。

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

最好使用本身支持幾種哈希算法的 crypt() 或支持比 crypt() 更多變體的函數(shù)hash(),而不是使用常見的哈希算法,如 MD5、SHA1 或 sha256,因為它們被認為是存在安全問題的。因此,使用這些算法的哈希密碼可能會產(chǎn)生漏洞。

50) 哪種加密擴展可以生成和驗證數(shù)字簽名?

PHP-OpenSSL擴展提供了幾種加密操作,包括數(shù)字簽名的生成和驗證。

51) 如何在 PHP 腳本中定義常量?

define() 指令允許我們按如下方式定義常量:

define ("ACONSTANT", 123);
登錄后復(fù)制

52) 如何通過引用傳遞變量?

為了能夠通過引用傳遞變量,我們在變量前面使用了 & 符號,如下所示$var1=&$var2

53) 整數(shù)12和字符串“13”的比較在PHP中是否有效?

“13” 和 12 可以在 PHP 中進行比較,因為它將所有內(nèi)容都強制轉(zhuǎn)換為整數(shù)類型。

54) 如何在PHP中強制轉(zhuǎn)換類型?

輸出類型的名稱必須在要強制轉(zhuǎn)換的變量前的括號中指定,如下所示:

  • (int), (integer) - 強制轉(zhuǎn)換為整型

  • (bool), (boolean) - 強制轉(zhuǎn)換為布爾值

  • (float), (double), (real) - 強制轉(zhuǎn)換為浮點型

  • (string) - 強制轉(zhuǎn)換為字符串

  • (array) - 強制轉(zhuǎn)換為數(shù)組

  • (object) - 強制轉(zhuǎn)換為對象

55) 條件語句何時以 endif 結(jié)尾?

當(dāng)最初的if后面跟著:然后是沒有大括號的代碼塊時。

56) PHP中如何使用三元條件運算符?

它由三個表達式組成:一個條件和兩個操作數(shù),它們描述在指定條件為true或false時應(yīng)執(zhí)行的指令,如下所示:

Expression_1?Expression_2 : Expression_3;
登錄后復(fù)制

57) 函數(shù) func_num_args() 的作用是什么?

函數(shù) func_num_args() 用于提供傳遞給函數(shù)的參數(shù)數(shù)量

58) 如果變量$ var1設(shè)置為10,而$ var2設(shè)置為字符var1,那么$$ var2的值是多少?

$$var2 包含值10。

59) 通過::訪問類意味著什么?

::用于訪問不需要對象初始化的靜態(tài)方法。

60) 在 PHP 中,對象是按值傳遞還是按引用傳遞?

對象按值傳遞。

** 61)是否在類構(gòu)造函數(shù)中隱式調(diào)用了Parent構(gòu)造函數(shù)?**

不,必須顯式調(diào)用父構(gòu)造函數(shù),如下所示:

parent::constructor($value)
登錄后復(fù)制

** 62)__sleep和__wakeup有什么區(qū)別?**

__sleep返回所有需要保存的變量的數(shù)組,而__wakeup檢索它們。

** 63)更快些嗎?**

1-結(jié)合以下兩個變量:

$ variable1 ='你好';$ variable2 ='世界';$ variable3 = $ variable1.$ variable2;
登錄后復(fù)制

要么

2- $variable3 = "$variable1$variable2";
登錄后復(fù)制

$variable3將包含“你好 世界”。第一個代碼比第二個代碼快,特別是對于大型數(shù)據(jù)集。

** 64)會話的定義是什么?**

會話是一個邏輯對象,使我們能夠跨多個PHP頁面保留臨時數(shù)據(jù)。

** 65)如何在PHP中啟動會話?**

使用session_start()函數(shù)可以激活會話。

** 66)如何傳播會話ID?**

您可以通過Cookie或URL參數(shù)傳播會話ID。

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

永久性cookie永久存儲在瀏覽器計算機上的cookie文件中。默認情況下,cookies是臨時的,如果我們關(guān)閉瀏覽器,cookies將被刪除。

** 68)會議何時結(jié)束?**

會話在PHP腳本完成執(zhí)行時自動結(jié)束,但可以使用session_write_close()手動結(jié)束。

** 69)session_unregister()和session_unset()有什么區(qū)別?**

session_unregister()函數(shù)從當(dāng)前會話中注銷全局變量,而session_unset()函數(shù)則釋放所有會話變量。

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

$GLOBALS是一個關(guān)聯(lián)數(shù)組,包括對當(dāng)前在腳本的全局范圍內(nèi)定義的所有變量的引用。
71) $ _SERVER 是什么意思?

$_SERVER ?是一個包含 Web 服務(wù)器創(chuàng)建信息的數(shù)組,包括了路徑,頭部和腳本位置等。

72)$ _FILES 是什么意思?

$_FILES 是一個包含通過 HTTP POST 方式上傳到當(dāng)前腳本的項目的數(shù)組。

73)$ _FILES ['userfile'] ['name' ] 和 $ _FILES ['userfile'] ['tmp_name'] 有什么區(qū)別

$ _FILES ['userfile'] ['name'] ?表示客戶端文件的原始名稱,

$_FILES['userfile']['tmp_name'] 表示服務(wù)器上存儲的文件的臨時文件名。

*74) 上傳文件出問題時,如何獲取錯誤信息 *

$_FILES['userfile']['error'] ?包括了與上傳文件有關(guān)的錯誤代碼。

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

可通過更改 ?php.ini 中的 upload_max_filesize 來更改要上傳的文件的最大大小。

76)$ _ENV 是什么意思?

通過環(huán)境方式傳遞給當(dāng)前腳本的變量的數(shù)組。

77)$ _COOKIE 是什么意思?

通過 HTTP Cookies 方式傳遞給當(dāng)前腳本的變量的數(shù)組。

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

變量的作用域定義了變量的環(huán)境上下文。在大多數(shù)情況下,PHP 變量只有一個變量域。這一作用域也涵蓋了 include 與 require 的文件。

79)’BITWISE AND’ 運算符和 ‘LOGICAL AND’ 運算符之間有什么區(qū)別?

$a and $b - ?只有在 $a 和 $b 都為 true 的情況下才為 true
$a & $b - ?把 $a 和 $b 中都為 1 的位設(shè)為 1

80)兩個主要的字符串運算符是什么?

. 運算符返回左右兩邊字符串的拼接結(jié)果。 .= 運算符將右邊的結(jié)果附加到左邊的參數(shù)上。

81) 數(shù)組運算符 ?‘===’ ?是什么意思?

$a === $b 如果 $a 和 $b 具有相同順序和相同類型的鍵/值對,則為 TRUE 。

82) ?$a != $b 和 $a !== $b有什么區(qū)別?

!= ?表示不等于 ( 如果 $a 不等于 $b 則為TRUE) ; !== 表示 不全等 ( 如果$a 不完全等于 $b則為TRUE).

83) 如何確定 PHP 變量是否是某個類的實例化對象?

我們用 ?instanceof 能夠驗證 PHP 變量是否是某個類的實例話對象。

84) goto 語句有什么用?

goto語句可以放置在PHP程序中以啟用跳轉(zhuǎn)。 目標(biāo)由后跟冒號的標(biāo)簽指向,指令被指定為goto語句,后跟所需的目標(biāo)標(biāo)簽。

85) Exception::getMessage 和 Exception:: getLine有什么區(qū)別?

Exception::getMessage 讓我們得到異常消息, ?Exception::getLine 讓我們得到發(fā)生異常的行。

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

Exception::__toString 給出異常的字符串表示形式。

87) 如何解析配置文件?

函數(shù) parse_ini_file() 使我們能夠加載在文件名中指定的 ini 文件,并以關(guān)聯(lián)數(shù)組的形式返回其中的設(shè)置。

88) 我們?nèi)绾未_定變量是否已經(jīng)設(shè)置?

布爾函數(shù) isset 確定變量是否已經(jīng)設(shè)置并且該變量不是NULL。

89) 函數(shù) strstr() 和 stristr() 有什么區(qū)別?

字符串函數(shù) strstr(全部字符串, 要查找的字符串) 返回從首次出現(xiàn)到全部字符串結(jié)束的部分字段串。 這個函數(shù)是區(qū)分大小寫的。 stristr() 除了不區(qū)分大小寫之外,與 strstr() 完全相同。

90) for 和 foreach 有什么區(qū)別?

for 表示如下:

for (expr1; expr2; expr3)
登錄后復(fù)制

expr1 在開頭執(zhí)行一次。 在每次迭代中,expr2 都會被評估。 如果評估結(jié)果是 TRUE, 循環(huán)繼續(xù), 并執(zhí)行 for 中的語句。 如果評估結(jié)果是 FALSE, 循環(huán)結(jié)束。expr3 在每次迭代結(jié)束時進行測試。

但是,foreach提供了一種遍歷數(shù)組的簡便方法,并且僅與數(shù)組和對象一起使用。

91) 是否可以提交帶有專用按鈕的表單?

可以使用 document.form.submit() 函數(shù)提交表單。 例如:

92) ?ereg_replace() 和 eregi_replace()有什么區(qū)別?

函數(shù)eregi_replace() 與 ereg_replace() 相同,只是在匹配字母字符時忽略大小寫區(qū)別。

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

是的, 我們使用 urlencode() 函數(shù) 來保護特殊字符。

94) PHP 中可能出現(xiàn)的三類錯誤是什么?

三類基本錯誤類別是: 通知 (非關(guān)鍵錯誤)、警告 (嚴重錯誤) 和 致命錯誤 (嚴重錯誤)。

95) 字符串 .34 和 .34 有什么區(qū)別

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

96) 我們?nèi)绾瓮ㄟ^頁面之間的導(dǎo)航傳遞變量?

可以使用會話,cookie 或隱藏的表單字段在 PHP 頁面之間傳遞變量。

97) 是否可以延長 PHP 腳本的執(zhí)行時間

使用 set_time_limit(int seconds) 可以延長 PHP 腳本的執(zhí)行時間。 默認限制為30秒。

98) 是否可以銷毀 Cookie ?

是的,可以通過設(shè)置cookie的過期時間來實現(xiàn)。

99) PHP中的默認會話時間是什么?

php中的默認會話時間是直到瀏覽器關(guān)閉為止。

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

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

101) 解釋是否可以在多個 PHP 項目之間共享單個 memcache 實例?

是的,可以在多個項目之間共享一個Memcache實例。 Memcache是一個內(nèi)存存儲空間,您可以在一個或多個服務(wù)器上運行memcache。您還可以將客戶端配置為與特定實例集進行對話。因此,您可以在同一主機上運行兩個不同的Memcache進程,但它們是完全獨立的。除非您已經(jīng)對數(shù)據(jù)進行了分區(qū),否則有必要知道從哪個實例獲取數(shù)據(jù)或?qū)?shù)據(jù)放入哪個實例。

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

當(dāng)PHP更改時,您可以通過以下方式更新Memcached

  • 主動清除緩存: 進行插入或更新時清除緩存
  • 重置緩存: 與第一種方法類似,但不僅僅是刪除鍵并等待下一個數(shù)據(jù)刷新緩存的請求,而是在插入或更新后重置值。

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

譯文地址:https://learnku.com/php/t/38272

推薦學(xué)習(xí):《PHP視頻教程

以上就是100道常見PHP面試題(附解析),增強你的知識儲備!的詳細內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!

PHP速學(xué)教程(入門到精通)
PHP速學(xué)教程(入門到精通)

PHP怎么學(xué)習(xí)?PHP怎么入門?PHP在哪學(xué)?PHP怎么學(xué)才快?不用擔(dān)心,這里為大家提供了PHP速學(xué)教程(入門到精通),有需要的小伙伴保存下載就能學(xué)習(xí)啦!

下載
來源:learnku網(wǎng)
本文內(nèi)容由網(wǎng)友自發(fā)貢獻,版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn
最新問題
開源免費商場系統(tǒng)廣告
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長!
關(guān)注服務(wù)號 技術(shù)交流群
PHP中文網(wǎng)訂閱號
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://m.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號