php自動載入類 autoload 函式

2021-06-29 03:17:09 字數 1221 閱讀 5249

php自動載入類 __autoload()函式,很多開發者寫物件導向的應用程式時,對每個類的定義建立乙個 php 原始檔。乙個很大的煩惱是不得不在每個指令碼(每個類乙個檔案)開頭寫乙個長長的包含檔案的列表。

很多開發者寫物件導向的應用程式時,對每個類的定義建立乙個 php 原始檔。乙個很大的煩惱是不得不在每個指令碼(每個類乙個檔案)開頭寫乙個長長的包含檔案的列表。

在軟體開發的系統中,不可能把所有的類都寫在乙個php檔案中,當在乙個php檔案中需要呼叫另乙個檔案中宣告的類時,就需要通過include把這個檔案引入。不過有的時候,在檔案眾多的專案中,要一一將所需類的檔案都include進來,是乙個很讓人頭疼的事,所以我們能不能在用到什麼類的時候,再把這個類所在的php檔案匯入呢?這就是我們這裡我們要講的自動載入類。

在 php 5 中,可以定義乙個 __autoload()函式,它會在試圖使用尚未被定義的類時自動呼叫,通過呼叫此函式,指令碼引擎在 php 出錯失敗前有了最後乙個機會載入所需的類, __autoload()函式接收的乙個引數,就是你想載入的類的類名,所以你做專案時,在組織定義類的檔名時,需要按照一定的規則,最好以類名為中心,也可以加上統一的字首或字尾形成檔名,比如 ***_classname.php、classname_***.php以及就是classname.php等等。

本例嘗試分別從 myclass1.php 和 myclass2.php 檔案中載入 myclass1 和 myclass2 類

01 <?php 

02 function __autoload($classname) 

03  

06   

07 //myclass1類不存在時,自動呼叫__autoload()函式,傳入引數」myclass1」 

08 $obj = new myclass1(); 

09   

10 //myclass2類不存在時,自動呼叫__autoload()函式,傳入引數」myclass2」 

11 $obj2 = new myclass2(); 

12 ?>

discuzx2.5的處理方式為:

01 <?php 

02 if (function_exists('spl_autoload_register')) 

03  

06 else

07  

12 } 

注意:__autoload() 是專門為 類的不存在 而設計的!!!很多框架利用這個函式,實現 類檔案的自動載入 !!!

php自動載入類

php類的自動載入機制 php的自動載入 在php5以前,我們要用某個類或類的方法,那必須include或者require,之後才能使用,每次用乙個類,都需要寫一條include,麻煩 php作者想簡單點,最好能引用乙個類時,如果當前沒有include進來,系統能自動去找到該類,自動引進 於是 au...

PHP 自動載入類

在專案開發中,因為乙個檔案中只能寫乙個類,並且在執行過程中會有很多的類參與,如果乙個乙個的載入很麻煩,所以,就需要乙個機制實現在php執行過程中自動載入需要的類。1.2.1 類的規則 乙個檔案中只能放乙個類 必須 檔名和類名同名 必須 類檔案以.class.php結尾 不是必須 1.2.2 手動載入...

php自動載入類

先說乙個魔術方法 tostring 方法 當我們在定義類中成員後,通過構建物件,我們無法直接通過輸出物件得到物件的內容,這時我們可以通過構造乙個魔術方法 tostring 在構建物件的同時,啟用這個魔術方法,從而達到直接輸出物件內容的目的 例子class ren r new ren echo r 轉...