自動載入是指在你想使用某個類,但你沒有require 對應的.php檔案的時候,程式幫你自動載入了php檔案。(require是件很痛苦的事情ovo)
在沒有自動載入之前,你的**可能是如下這樣的:
<?php
......
$user = new database();
$user = new user();
引入了好多的require,隨著專案的不斷迭代,會很亂。這樣的設計並不好。
php5.3之後,實現了自動載入,可以通過spl_autoload_register()方法進行php檔案的的自動引入。spl_autoload_register()有三個引數。
spl_autoload_register('autoload1',true,true);第乙個引數是當需要建立的類不存在時,呼叫autoload1()這個方法。因此,我們最後的**會是這樣:第二個引數為true時,當類的自動載入函式無法成功註冊時會丟擲異常。
第三個引數為true時,spl_autoload_register()方法會新增類的自動載入函式到佇列之首,而不是佇列尾部。
首先定義了乙個常量為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)
引入了這個類,自然就可以使用new operation()物件。
也就是說,只要你的**符合psr-4規範,不需要require就可以自動載入相應的類。想象一下,你並不需要引入對應的類就可以直接使用,這很棒。
如果本文對你有幫助,不妨點乙個贊!
php 載入 php自動載入方式
本篇文章介紹的內容是關於php自動載入方式,現在分享給大家,有需要的朋友可以參考一下這篇文章的內容 php載入檔案方式 1 include,include once,requice,requice one常規載入 2 autoload 3 spl autoload register 常規載入方式 假...
php的自動載入
php的自動載入 在php5以前,我們要用某個類或類的方法,那必須include或者require,之後才能使用,每次用乙個類,都需要寫一條include,麻煩 php作者想簡單點,最好能引用乙個類時,如果當前沒有include進來,系統能自動去找到該類,自動引進 於是 autoload 函式應運而...
php自動載入
很多開發者寫物件導向的應用程式時對每個類的定義建立乙個 php 原始檔。乙個很大的煩惱是不得不在每個指令碼 每個類乙個檔案 開頭寫乙個長長的包含檔案列表。在 php 5 中,不再需要這樣了。可以定義乙個 autoload 函式,它會在試圖使用尚未被定義的類時自動呼叫。通過呼叫此函式,指令碼引擎在 p...