當(dāng)前位置:首頁>職場> php遇到的面試題(100個常見的PHP)
發(fā)布時間:2024-01-19閱讀( 43)
PHP 是一種基于腳本的 web 語言,開發(fā)者可以動態(tài)的創(chuàng)建網(wǎng)頁,今天小編就來說說關(guān)于php遇到的面試題?下面更多詳細(xì)答案一起來看看吧!

php遇到的面試題
1) PHP 是什么?PHP 是一種基于腳本的 web 語言,開發(fā)者可以動態(tài)的創(chuàng)建網(wǎng)頁。
2) PHP 的全稱?Hypertext Preprocessor(超文本預(yù)處理器)。
3) PHP 與哪些編程語言相似?PHP 語法類似于 Perl 和 C。
推薦使用版本 7。
6) 如何從命令行執(zhí)行 PHP 腳本?在命令行界面(CLI),指定要執(zhí)行的腳本的文件名,如下所示:
php script.php
7) 如何從命令行界面運行交互式 PHP Shell?將 PHP CLI 程序與 - a 選項一起使用,如下所示:
php -a
8) 正確開始和結(jié)束 PHP 代碼塊的最常見的兩種方式是什么?開始和結(jié)束 PHP 腳本的兩種最常見的方式是:
<?php [ --- PHP code---- ] ?> and <? [--- PHP code ---] ?>
將輸出直接顯示給瀏覽器,我們必須使用特殊標(biāo)記 <?=and?>。
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"; ?-->
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"); ?-->
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
35) 如何使用 POST 方法訪問通過 URL 發(fā)送的數(shù)據(jù)?要訪問以這種方式發(fā)送的數(shù)據(jù),請使用 $ _POST 數(shù)組。
想象一下,當(dāng)用戶單擊「提交到帖子」表單時,表單上有一個名為「var」的表單字段,然后您可以像這樣訪問值:
$_POST["var"];
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 ?-->
47) 如何定義 PHP 腳本函數(shù)中可訪問的變量??使用 global 關(guān)鍵字。
48) 如何從函數(shù)中返回值?使用指令 ‘return $value;’ 。
49) 用于哈希密碼最便捷的哈希方法是什么?最好使用本身支持幾種哈希算法的 crypt () 或支持比 crypt () 更多變體的函數(shù) hash (),而不是使用常見的哈希算法,如 MD5、SHA1 或 sha256,因為它們被認(rèn)為是存在安全問題的。因此,使用這些算法的哈希密碼可能會產(chǎn)生漏洞。
50) 哪種加密擴展可以生成和驗證數(shù)字簽名?PHP-OpenSSL 擴展提供了幾種加密操作,包括數(shù)字簽名的生成和驗證。
51) 如何在 PHP 腳本中定義常量?define () 指令允許我們按如下方式定義常量:
define ("ACONSTANT", 123);
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 中如何使用三元條件運算符?它由三個表達(dá)式組成:一個條件和兩個操作數(shù),它們描述在指定條件為 true 或 false 時應(yīng)執(zhí)行的指令,如下所示:
Expression_1?Expression_2 : Expression_3;
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)
** 62)__sleep 和__wakeup 有什么區(qū)別?**__sleep 返回所有需要保存的變量的數(shù)組,而__wakeup 檢索它們。
** 63)更快些嗎?**1 - 結(jié)合以下兩個變量:
$ variable1 =你好;
$ variable2 =世界;
$ variable3 = $ variable1.$ variable2;
要么
2- $variable3 = "$variable1$variable2";
$variable3 將包含 “你好 世界”。第一個代碼比第二個代碼快,特別是對于大型數(shù)據(jù)集。
** 64)會話的定義是什么?**會話是一個邏輯對象,使我們能夠跨多個 PHP 頁面保留臨時數(shù)據(jù)。
** 65)如何在 PHP 中啟動會話?**
使用 session_start() 函數(shù)可以激活會話。
** 66)如何傳播會話 ID?**
您可以通過 Cookie 或 URL 參數(shù)傳播會話 ID。
** 67)永久性 Cookie 的含義是什么?**永久性 cookie 永久存儲在瀏覽器計算機上的 cookie 文件中。默認(rèn)情況下,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) 表達(dá)式 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)
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)鍵錯誤)、警告 (嚴(yán)重錯誤) 和 致命錯誤 (嚴(yá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í)行時間。 默認(rèn)限制為 30 秒。
98) 是否可以銷毀 Cookie ?是的,可以通過設(shè)置 cookie 的過期時間來實現(xiàn)。
99) PHP 中的默認(rèn)會話時間是什么?php 中的默認(rèn)會話時間是直到瀏覽器關(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ù)刷新緩存的請求,而是在插入或更新后重置值。
喜歡我的文章就關(guān)注我吧,持續(xù)更新中.........
歡迎分享轉(zhuǎn)載→ http://m.avcorse.com/read-33043.html
Copyright ? 2024 有趣生活 All Rights Reserve吉ICP備19000289號-5 TXT地圖HTML地圖XML地圖