成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

帶小白理解php的自動加載

DevYK / 3049人閱讀

摘要:之后,實現(xiàn)了自動加載,可以通過方法進行文件的的自動引入。第二個參數(shù)為時,當類的自動加載函數(shù)無法成功注冊時會拋出異常。也就是說,只要你的代碼符合規(guī)范,不需要就可以自動加載相應的類。

什么是自動加載

自動加載是指在你想使用某個類,但你沒有require 對應的.php文件的時候,程序幫你自動加載了php文件。(require是件很痛苦的事情OvO)
在沒有自動加載之前,你的代碼可能是如下這樣的:


引入了好多的require,隨著項目的不斷迭代,會很亂。這樣的設計并不好。
php5.3之后,實現(xiàn)了自動加載,可以通過spl_autoload_register()方法進行php文件的的自動引入。spl_autoload_register()有三個參數(shù)。

spl_autoload_register("autoload1",true,true);
第一個參數(shù)是當需要創(chuàng)建的類不存在時,調(diào)用autoload1()這個方法。
第二個參數(shù)為true時,當類的自動加載函數(shù)無法成功注冊時會拋出異常。
第三個參數(shù)為true時,spl_autoload_register()方法會添加類的自動加載函數(shù)到隊列之首,而不是隊列尾部。

因此,我們最后的代碼會是這樣:

define("BASEDIR", __DIR__);
public static function autoload($class)
    {
        require BASEDIR . "/" . str_replace("", "/", $class) . ".php";
    }
spl_autoload_register("autoload");
$operation = new IMoocOperation(10);
執(zhí)行過程


首先定義了一個常量為BASEDIR為當前的目錄(根目錄),(1)當程序執(zhí)行到$operation = new IMoocOperation(10);時,php引擎就會搜索作用域下是否有IMoocOperation這個類,如果有,則正常引入,如果沒有則(2)調(diào)用spl_autoload_register()方法,然后再執(zhí)行(3)autoload方法,autoload的參數(shù)$class為文件路徑,根據(jù)psr-4規(guī)范,文件名要與類名相互對應,(也就是說,User.php文件只能有一個class,而且class名字必須是User),所以你在引入了php文件后,相當于引入了這個類,就可以調(diào)用相應的方法了。
antuoload()在這個例子中被解析為

public static function autoload($class)
    {
        require ‘imooc/IMooc/Operation.php’;
    }

引入了這個類,自然就可以使用new Operation()對象。
也就是說,只要你的代碼符合psr-4規(guī)范,不需要require就可以自動加載相應的類。想象一下,你并不需要引入對應的類就可以直接使用,這很棒。
如果本文對你有幫助,不妨點一個贊!

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/29897.html

相關文章

  • 最適合入門 Laravel 初級教程 (一)

    摘要:最適合入門的初級教程一為什么選擇曾經(jīng)要跟白頭到老沒想到它升了個級就拋了錨把我等拋棄了痛定思痛重新審視了一遍框架是世界上最好的語言這個沒有疑問吧如果有那絕對是個異教徒這是要被拖出去燒死的信仰的問題神圣不可侵犯那最好的語言中最流行的框架是哪個呢 最適合入門的 Laravel 初級教程 (一) 為什么選擇 laravel 曾經(jīng)要跟 thinkphp 白頭到老;沒想到它升了個級就拋了錨;把我等...

    klivitamJ 評論0 收藏0
  • Laravel 5.4 入門系列 13. 終篇: 小白也能看懂 Laravel 核心概念講解

    摘要:但是服務通常由服務提供者來管理的。小結(jié)通過上述的例子,基本上可以理解服務容器和服務提供者的使用。懂得了服務容器和服務提供者,理解門面也就不難了。 自動依賴注入 什么是依賴注入,用大白話將通過類型提示的方式向函數(shù)傳遞參數(shù)。 實例 1 首先,定義一個類: /routes/web.php class Bar {} 假如我們在其他地方要使用到 Bar 提供的功能(服務),怎么辦,直接傳入?yún)?shù)即...

    BenCHou 評論0 收藏0
  • 小白進擊前端攻城獅經(jīng)歷

    摘要:來吧,先做個簡單的不算自我介紹的介紹吧。我本一名普通的打工仔,自高中畢業(yè)后就出來打工。從服務員到工廠打工,已經(jīng)年了。于是在年月份,我開始了根據(jù)我的興趣進行學習知識。 來吧,先做個簡單的不算自我介紹的介紹吧。我本一名普通的打工仔,自高中畢業(yè)后就出來打工。從服務員到工廠打工,已經(jīng)4年了。在這四年里,我漸漸發(fā)覺為什么領導就得讓我仰視,我在他們這些老板當中我變得那么渺小。 于是在2016年...

    alogy 評論0 收藏0
  • 小白看過來 讓Python爬蟲成為你好幫手

    摘要:小白看過來讓爬蟲成為你的好幫手隨著信息化社會的到來,人們對網(wǎng)絡爬蟲這個詞已經(jīng)不再陌生?;踊顒雨P于華為云微認證的任何問題,均可在下方評論區(qū)留言。華為云微認證每期將送出個免費機會,獎項公布時間月日。 小白看過來 讓Python爬蟲成為你的好幫手 隨著信息化社會的到來,人們對網(wǎng)絡爬蟲這個詞已經(jīng)不再陌生。但什么是爬蟲,如何利用爬蟲為自己服務,這聽起來有些高大上。下面一文帶你走近爬蟲世界,讓即...

    darcrand 評論0 收藏0
  • 鄭方方打怪升級日記 — 初識HTML5與CSS3

    摘要:任務名稱響應式砸蛋頁面任務背景前輩方方啊最近項目也沒什么事情你看這個砸蛋頁面不是很好看要不你做一個響應式砸蛋頁面吧系統(tǒng)鄭方方接下前輩的任務鄭方方自動解析任務步驟任務響應式砸蛋頁面與入門閱讀秘籍響應式布局制作層搭配搭配控制器完成任務人物背 任務名稱:響應式砸蛋頁面 任務背景 前輩:方方啊,最近項目也沒什么事情,你看這個砸蛋頁面不是很好看,要不你做一個響應式砸蛋頁面吧? 系統(tǒng):鄭方方接下前...

    spademan 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<