PHP麪霸養成系列——PHP基礎知識問答(附答案)

該系列包括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的實現代碼分離,從而使同一個程序可以使用不同的表現形式
    
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章