摘要:之后,實現了自動加載,可以通過方法進行文件的的自動引入。第二個參數為時,當類的自動加載函數無法成功注冊時會拋出異常。也就是說,只要你的代碼符合規范,不需要就可以自動加載相應的類。
什么是自動加載
自動加載是指在你想使用某個類,但你沒有require 對應的.php文件的時候,程序幫你自動加載了php文件。(require是件很痛苦的事情OvO)
在沒有自動加載之前,你的代碼可能是如下這樣的:
引入了好多的require,隨著項目的不斷迭代,會很亂。這樣的設計并不好。
php5.3之后,實現了自動加載,可以通過spl_autoload_register()方法進行php文件的的自動引入。spl_autoload_register()有三個參數。spl_autoload_register("autoload1",true,true);
第一個參數是當需要創建的類不存在時,調用autoload1()這個方法。
第二個參數為true時,當類的自動加載函數無法成功注冊時會拋出異常。
第三個參數為true時,spl_autoload_register()方法會添加類的自動加載函數到隊列之首,而不是隊列尾部。因此,我們最后的代碼會是這樣:
define("BASEDIR", __DIR__); public static function autoload($class) { require BASEDIR . "/" . str_replace("", "/", $class) . ".php"; } spl_autoload_register("autoload"); $operation = new IMoocOperation(10);執行過程
首先定義了一個常量為BASEDIR為當前的目錄(根目錄),(1)當程序執行到$operation = new IMoocOperation(10);時,php引擎就會搜索作用域下是否有IMoocOperation這個類,如果有,則正常引入,如果沒有則(2)調用spl_autoload_register()方法,然后再執行(3)autoload方法,autoload的參數$class為文件路徑,根據psr-4規范,文件名要與類名相互對應,(也就是說,User.php文件只能有一個class,而且class名字必須是User),所以你在引入了php文件后,相當于引入了這個類,就可以調用相應的方法了。
antuoload()在這個例子中被解析為public static function autoload($class) { require ‘imooc/IMooc/Operation.php’; }引入了這個類,自然就可以使用new Operation()對象。
也就是說,只要你的代碼符合psr-4規范,不需要require就可以自動加載相應的類。想象一下,你并不需要引入對應的類就可以直接使用,這很棒。
如果本文對你有幫助,不妨點一個贊!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/29897.html
摘要:最適合入門的初級教程一為什么選擇曾經要跟白頭到老沒想到它升了個級就拋了錨把我等拋棄了痛定思痛重新審視了一遍框架是世界上最好的語言這個沒有疑問吧如果有那絕對是個異教徒這是要被拖出去燒死的信仰的問題神圣不可侵犯那最好的語言中最流行的框架是哪個呢 最適合入門的 Laravel 初級教程 (一) 為什么選擇 laravel 曾經要跟 thinkphp 白頭到老;沒想到它升了個級就拋了錨;把我等...
摘要:但是服務通常由服務提供者來管理的。小結通過上述的例子,基本上可以理解服務容器和服務提供者的使用。懂得了服務容器和服務提供者,理解門面也就不難了。 自動依賴注入 什么是依賴注入,用大白話將通過類型提示的方式向函數傳遞參數。 實例 1 首先,定義一個類: /routes/web.php class Bar {} 假如我們在其他地方要使用到 Bar 提供的功能(服務),怎么辦,直接傳入參數即...
摘要:來吧,先做個簡單的不算自我介紹的介紹吧。我本一名普通的打工仔,自高中畢業后就出來打工。從服務員到工廠打工,已經年了。于是在年月份,我開始了根據我的興趣進行學習知識。 來吧,先做個簡單的不算自我介紹的介紹吧。我本一名普通的打工仔,自高中畢業后就出來打工。從服務員到工廠打工,已經4年了。在這四年里,我漸漸發覺為什么領導就得讓我仰視,我在他們這些老板當中我變得那么渺小。 于是在2016年...
摘要:小白看過來讓爬蟲成為你的好幫手隨著信息化社會的到來,人們對網絡爬蟲這個詞已經不再陌生?;踊顒雨P于華為云微認證的任何問題,均可在下方評論區留言。華為云微認證每期將送出個免費機會,獎項公布時間月日。 小白看過來 讓Python爬蟲成為你的好幫手 隨著信息化社會的到來,人們對網絡爬蟲這個詞已經不再陌生。但什么是爬蟲,如何利用爬蟲為自己服務,這聽起來有些高大上。下面一文帶你走近爬蟲世界,讓即...
摘要:任務名稱響應式砸蛋頁面任務背景前輩方方啊最近項目也沒什么事情你看這個砸蛋頁面不是很好看要不你做一個響應式砸蛋頁面吧系統鄭方方接下前輩的任務鄭方方自動解析任務步驟任務響應式砸蛋頁面與入門閱讀秘籍響應式布局制作層搭配搭配控制器完成任務人物背 任務名稱:響應式砸蛋頁面 任務背景 前輩:方方啊,最近項目也沒什么事情,你看這個砸蛋頁面不是很好看,要不你做一個響應式砸蛋頁面吧? 系統:鄭方方接下前...
閱讀 3770·2023-04-25 21:09
閱讀 3128·2021-10-20 13:48
閱讀 2942·2021-09-24 10:25
閱讀 2931·2021-08-21 14:08
閱讀 1790·2019-08-30 15:56
閱讀 976·2019-08-30 15:52
閱讀 1841·2019-08-29 14:11
閱讀 3562·2019-08-29 11:01