該系列包括PHP基礎知識,PHP進階知識,MySQL常見問題,高併發之Redis,Linux常見命令,thinkPHP與laravel6個方面的相關知識,文章已上傳至github,點擊這裏直達github:https://github.com/LeeToug/interview
1.PHP中的數據類型有哪些?
4個標量:字符串,整型,浮點型,布爾型
2個複合型:數組,對象
2個特殊型:資源,NULL
2.PHP中的數組常用的方法?至少5個
in_array():判斷是否在數組中
array_unique():數組去重
array_merge():數組合並
array_keys():獲取數組中所有下標
array_values():返回數組的所有值
array_push():將一個或多個元素插入數組的末尾(入棧)
array_pop():刪除數組的最後一個元素(出棧)
count():返回數組中元素的數目
sort():數組升序排序
rsort():數組降序排序
array_sum():返回數組中值的和
3.session與cookie的區別?
Session是在服務端保存的一個數據結構,用來跟蹤用戶 的狀態,這個數據可以保存在集羣、數據庫、文件中
Cookie是客戶端保存用戶信息的一種機制,用來記錄用戶的一些信息,也是實現Session的 一種方式。
4.超級全局變量你知道幾個?(9個)
$GLOABLE:儲存全局作用域中的變量
$_SERVER:獲取服務器相關信息
$_REQUESR:獲取POST和GET請求的參數
$_POST:獲取POST請求的參數
$_GET:獲取GET請求的參數
$_FILES:獲取上傳文件的變量
$_ENV:獲取服務器環境變量的數組
$_COOKIE:瀏覽器cookie的相關操作
$_SESSION:服務端session的操作
5.魔術變量你知道幾個?(記住5個以上即可)
__FUNCTION__:返回該函數被定義時的名字
__METHOD__:返回該方法被定義時的名字
__DIR__:文件所在的目錄
__FILE__:文件的完整路徑和文件名
__LINE__:文件中的當前行號
__CLASS__:返回該類被定義時的名字
__NAMESPACE__:當前命名空間的名稱(區分大小寫)
6.魔術方法你知道幾個?(記住5個以上即可)
__construct():構造函數。實例化對象時被調用,當__construct和以類名爲函數名的函數同時存在時,__construct將被調用,另一個不被調用
__destruct():析構函數。當刪除一個對象或對象操作終止時被調用
__call():對象調用某個方法,若方法存在,則直接調用;若不存在,則會去調用__call函數
__get(): 讀取一個對象的屬性時,若屬性存在,則直接返回屬性值;若不存在,則會調用__get函數
__set():設置一個對象的屬性時,若屬性存在,則直接賦值;若不存在,則會調用__set函數
__toString():打印一個對象的時被調用
__clone():克隆對象時被調用
__sleep():serialize(序列化)之前被調用。若對象比較大,想刪減一點東東再序列化,可考慮一下此函數
__unset():unset一個對象的屬性時被調用
__isset(): 檢測一個對象的屬性是否存在時被調用
__autoload(): 實例化一個對象時,如果對應的類不存在,則該方法被調用
__wakeup():unserialize(反序列化)時被調用,做些對象的初始化工作
7.HTTP常見狀態碼?各是什麼含義?
301(永久移動)
302(臨時移動)
305(使用代理)
400(錯誤請求)服務器不理解請求的語法。
401(未授權)請求要求身份驗證。對於登錄後請求的網頁,服務器可能返回此響應。
403(禁止)
404(未找到)
408(請求超時)
500(服務器內部錯誤)
502(錯誤網關)
503 (服務不可用)
8.include,require,include_once,require_once有什麼區別?
include函數:會將指定的文件讀入並且執行裏面的程序;
require函數:會將目標文件的內容讀入,並且把自己本身代換成這些讀入的內容;
include_once 函數:在腳本執行期間包含並運行指定文件。此行爲和 include 語句類似,唯一區別是如果該文件中已經被包含過,則不會再次包含。如同此語句名字暗示的那樣,只會包含一次;
require_once 函數:和 require 語句完全相同,唯一區別是 PHP 會檢查該文件是否已經被包含過,如果是則不會再次包含。
include與require除了在處理引入文件的方式不同外,最大的區別就是:include在引入不存文件時產生一個警告且腳本還會繼續執行,而require則會導致一個致命性錯誤且腳本停止執行
9.error_reporting的作用?有哪些級別?
設置 PHP 的報錯級別並返回當前級別
error_reporting(0):關閉錯誤報告
error_reporting(E_ERROR | E_WARNING | E_PARSE):報告 runtime 錯誤
error_reporting(E_ALL):報告所有錯誤
ini_set("error_reporting", E_ALL):等同 error_reporting(E_ALL);
error_reporting(E_ALL & ~E_NOTICE):報告 E_NOTICE 之外的所有錯誤
10.echo、print_r、print、var_dump區別?
echo:語句結構;
print:是函數,有返回值
print_r:能打印數組,對象
var_dump:能打印對象數組,並且帶數據類型
11.如何把一個GB2312格式的字符串轉換成UTF-8格式?
iconv()函數
12.簡述 private、 protected、 public修飾符的訪問權限
private : 私有成員, 在類的內部纔可以訪問。
protected : 保護成員,該類內部和繼承類中可以訪問。
public : 公共成員,完全公開,沒有訪問限制。
13.$this和self、parent這三個關鍵詞分別代表什麼?在哪些場合下使用?
$this 當前對象
self 當前類
parent 當前類的父類
14.isset() 和 empty() 區別?
isset判斷變量是否存在,可以傳入多個變量,若其中一個變量不存在則返回假;empty判斷變量是否爲空爲假,只可傳一個變量,如果爲空爲假則返回真
15.MVC分別指哪三層,有什麼優點?
MVC三層分別指:業務模型、視圖、控制器,由控制器層調用模型處理數據,然後將數據映射到視圖層進行顯示,優點是:①可以實現代碼的重用性,避免產生代碼冗餘;②M和V的實現代碼分離,從而使同一個程序可以使用不同的表現形式
PHP麪霸養成系列——PHP基礎知識問答(附答案)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.