溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

PHP有哪些面試題

發(fā)布時(shí)間:2021-04-09 10:37:09 來源:億速云 閱讀:166 作者:小新 欄目:編程語言

這篇文章主要介紹PHP有哪些面試題,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

1. echo()、print()、print_r() 的區(qū)別

echo()、print() 是 PHP 語句;print_r() 是函數(shù),

  • print()只能打印出簡(jiǎn)單類型變量的值(如int,string),有返回值。

  • print_r()可以打印出復(fù)雜類型變量的值(如數(shù)組,對(duì)象)

  • echo 輸出一個(gè)或者多個(gè)字符串,無返回值

2. 字符串中單引號(hào)與雙引號(hào)的區(qū)別

  • 單引號(hào)不能解釋變量,而雙引號(hào)可以解釋變量。

  • 單引號(hào)不能轉(zhuǎn)義字符,在雙引號(hào)中可以轉(zhuǎn)義字符。

3. error_reporting 作用

error_reporting() 設(shè)置 PHP 的報(bào)錯(cuò)級(jí)別并返回當(dāng)前級(jí)別。

4. SESSION 與 COOKIE 的區(qū)別

  • session 存儲(chǔ)在服務(wù)器端,cookie 保存在客戶端。

  • session比較安全,cookie 用某些手段可以修改,不安全。

  • session 的運(yùn)行依賴 sesseion id,而 session id 存在 cookie 中。如果禁用 cookie,session 會(huì)失效。(但可以通過其他方式實(shí)現(xiàn),比如在 url 中傳遞 session id)。

  • session 可以放在 文件、數(shù)據(jù)庫或內(nèi)存中。默認(rèn)存儲(chǔ)在服務(wù)器的一個(gè)文件中。

5. get 和 post 的區(qū)別

get是顯式的,數(shù)據(jù)從url中可以看到,傳輸?shù)臄?shù)據(jù)量小,安全性低;

post是隱式的,傳送的數(shù)據(jù)量較大,安全性較高 。

6. 寫出下面代碼的執(zhí)行結(jié)果

<?php
    $a = 12;
    $b = 012;
    $c = 0x12;
    echo $a,"\n",$b,"\n",$c;

解析:八進(jìn)制12轉(zhuǎn)為二進(jìn)制001010,二進(jìn)制再轉(zhuǎn)為十進(jìn)制為10。十六進(jìn)制12轉(zhuǎn)為二進(jìn)制00010010,二進(jìn)制再轉(zhuǎn)為十進(jìn)制18。所以結(jié)果為  12 10 18。

7. 解決 url 出現(xiàn)中文亂碼

使用 urlencode() 對(duì)中文進(jìn)行編碼。

8. 把 GB2312 格式的字符串轉(zhuǎn)換成 UTF-8

iconv('GB2312','UTF-8','悄悄是別離的笙簫');

9. 字符串轉(zhuǎn)化為數(shù)組

$str = "hello word;From-ajiang";str_split($str, 3);
explode(";", $str);preg_split("/-/", $str);

10. 字符串替換函數(shù)

$str = 'linux and php';
str_replace('linux', 'windows', $str);
preg_replace('/linux|php/', 'js', $str);

11. 字符串查找函數(shù)

preg_match("/php/i", "PHP is the web scripting language of choice.");
$userinfo = "Name: <b>PHP</b> <br> Title: <b>Programming Language</b>";
preg_match_all ("/<b>(.*)<\/b>/U", $userinfo, $pat_array);
strpos("I love php, I love php too!","php");   // 首次匹配的位置
strrpos("I love php, I love php too!","php");  // 最后匹配的位置

12. 使用 redis 有哪些好處

  • 速度快:因?yàn)閿?shù)據(jù)存在內(nèi)存中,類似于HashMap,HashMap的優(yōu)勢(shì)就是查找和操作的時(shí)間復(fù)雜度都是O(1)。

  • 支持豐富數(shù)據(jù)類型:支持string,list,set,sorted set,hash。

  • 支持事務(wù):可以一次執(zhí)行多個(gè)命令。失敗不會(huì)回滾,會(huì)繼續(xù)執(zhí)行。

  • 豐富的特性:可用于緩存,消息,按key設(shè)置過期時(shí)間,過期后將會(huì)自動(dòng)刪除

13. redis 相比 memcached 有哪些優(yōu)勢(shì)

  • memcached所有的值均是簡(jiǎn)單的字符串,redis作為其替代者,支持更為豐富的數(shù)據(jù)類型。

  • redis 的速度比 memcached 快很多 。

  • redis 可以持久化其數(shù)據(jù)

14. 在命令行下運(yùn)行PHP腳本,同時(shí)傳遞參數(shù)

首先進(jìn)入php安裝目錄,-f 參數(shù)指定要執(zhí)行的 php 文件,參數(shù)直接接在文件名后面,多個(gè)參數(shù)用空格隔開。-r 表示直接執(zhí)行 php 代碼 。

如果傳遞參數(shù),腳本首先會(huì)檢查 $argc,以確保自變量的數(shù)量符合要求。然后會(huì)從 $argv 里提取出每一個(gè)自變量,把它們打印輸出到標(biāo)準(zhǔn)的輸出。

$ php -f d:/wamp/test.php [參數(shù)1 參數(shù)2 ...] $ php -r phpinfo();

15. crontab 定時(shí)任務(wù)語法

分 時(shí) 日 月 周 執(zhí)行的程序

案例: 一個(gè)備份程序mybackup,需要在周一到周五下午1點(diǎn)和晚上8點(diǎn)運(yùn)行,命令如下:

 0 13,20 * * 1,2,3,4,5 mybackup // 或 0 13,20 * * 1-5 mybackup

16. 鍵入網(wǎng)址再按下回車

  • 瀏覽器從地址欄的輸入中獲得服務(wù)器的 IP 地址和端口號(hào);

  • 瀏覽器用 TCP 的三次握手與服務(wù)器建立連接;

  • 瀏覽器向服務(wù)器發(fā)送拼好的報(bào)文;

  • 服務(wù)器收到報(bào)文后處理請(qǐng)求,同樣拼好報(bào)文再發(fā)給瀏覽器;

  • 瀏覽器解析報(bào)文,渲染輸出頁面。

17. php 數(shù)組相關(guān)的函數(shù)

array_combine()-----通過合并兩個(gè)數(shù)組來創(chuàng)建一個(gè)新數(shù)組
array_chunk()-------將一個(gè)數(shù)組分割成多個(gè)
array_merge()-------把兩個(gè)或多個(gè)數(shù)組合并成一個(gè)數(shù)組
array_slice()-------在數(shù)組中根據(jù)條件取出一段值
array_diff()--------返回兩個(gè)數(shù)組的差集數(shù)組
array_intersect()---計(jì)算數(shù)組的交集
array_search()------在數(shù)組中搜索給定的值
array_splice()------移除數(shù)組的一部分且替代它
array_key_exists()--判斷某個(gè)數(shù)組中是否存在指定的key
array_flip()--------交換數(shù)組中的鍵和值
array_reverse()-----將原數(shù)組中的元素順序翻轉(zhuǎn),創(chuàng)建新的數(shù)組并返回
array_unique()------移除數(shù)組中重復(fù)的值
range()-------------創(chuàng)建并返回一個(gè)包含指定范圍的元素的數(shù)組

18. PHP 數(shù)組排序

sort()   - 以升序?qū)?shù)組排序
rsort()  - 以降序?qū)?shù)組排序
asort()  - 根據(jù)值,以升序?qū)﹃P(guān)聯(lián)數(shù)組進(jìn)行排序
ksort()  - 根據(jù)鍵,以升序?qū)﹃P(guān)聯(lián)數(shù)組進(jìn)行排序
arsort() - 根據(jù)值,以降序?qū)﹃P(guān)聯(lián)數(shù)組進(jìn)行排序
krsort() - 根據(jù)鍵,以降序?qū)﹃P(guān)聯(lián)數(shù)組進(jìn)行排序

19. $_SERVER

// http://www.test.com/testA/test?name=aj&age=23
"HTTP_HOST" => "www.test.com"
"SERVER_NAME" => "www.test.com"
"SERVER_PORT" => "80"               // 服務(wù)器端口
"SERVER_ADDR" => "127.0.0.1"        // 服務(wù)器IP
"REMOTE_PORT" => "13675"            // 客戶端IP
"REMOTE_ADDR" => "127.0.0.1"        // 客戶端口
"REQUEST_URI" => "/testA/test?name=aj&age=23"          // 參數(shù)
"SCRIPT_NAME" => "/index.php"
"QUERY_STRING" => "s=//testA/test&name=aj&age=23"
"SCRIPT_FILENAME" => "F:/projectName/public/index.php" // 當(dāng)前執(zhí)行腳本路徑

20. 魔術(shù)方法

__construct(),類的構(gòu)造函數(shù)
__destruct(),類的析構(gòu)函數(shù)

__call(),在對(duì)象中調(diào)用一個(gè)不可訪問方法時(shí)調(diào)用
__callStatic(),用靜態(tài)方式中調(diào)用一個(gè)不可訪問方法時(shí)調(diào)用

__get(),獲得一個(gè)不存在的類成員變量時(shí)調(diào)用
__set(),設(shè)置一個(gè)不存在的類成員變量時(shí)調(diào)用

__isset(),當(dāng)對(duì)不可訪問屬性調(diào)用isset()或empty()時(shí)調(diào)用
__unset(),當(dāng)對(duì)不可訪問屬性調(diào)用unset()時(shí)被調(diào)用。

__sleep(),執(zhí)行serialize()時(shí),先會(huì)調(diào)用這個(gè)函數(shù)
__wakeup(),執(zhí)行unserialize()時(shí),先會(huì)調(diào)用這個(gè)函數(shù)
__toString(),類被當(dāng)成字符串時(shí)的回應(yīng)方法

__invoke(),調(diào)用函數(shù)的方式調(diào)用一個(gè)對(duì)象時(shí)的回應(yīng)方法
__set_state(),調(diào)用var_export()導(dǎo)出類時(shí),此靜態(tài)方法會(huì)被調(diào)用。

__clone(),當(dāng)對(duì)象復(fù)制完成時(shí)調(diào)用
__autoload(),嘗試加載未定義的類
__debugInfo(),打印所需調(diào)試信息

21. PHP 的基本變量類型

  • 四種標(biāo)量類型:boolean (布爾型)、integer (整型)、float (浮點(diǎn)型, 也稱作 double)、string (字符串)

  • 兩種復(fù)合類型:array (數(shù)組)、object (對(duì)象)

  • 兩種特殊類型:resource(資源)、NULL(NULL)

以上是“PHP有哪些面試題”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI