php類的自動載入機制
php的自動載入:
在php5以前,我們要用某個類或類的方法,那必須include或者require,之後才能使用,每次用乙個類,都需要寫一條include,麻煩
php作者想簡單點,最好能引用乙個類時,如果當前沒有include進來,系統能自動去找到該類,自動引進~
於是:__autoload()函式應運而生。
通常放在應用程式入口類裡面,比如discuz中,放在class_core.php中。
先講淺顯的例子:
第一種情況:檔案a.php中內容如下
<?php
classa}
?>
檔案c.php 中內容如下:
<?php
function
__autoload
($class)
}
$a = new a(); //這邊會自動呼叫__autoload,引入a.php檔案
?>
第二種情況:有時我希望能自定義autoload,並且希望起乙個更酷的名字loader,則c.php改為如下:
<?php
function
loader
($class)
}spl_autoload_register('loader'); //註冊乙個自動載入方法,覆蓋原有的__autoload
$a = new a();
?>
<?php
class
loader
}
}
spl_autoload_register(array('loader', 'loadclass'));
$a = new a();
?>
當前為最佳形式。
通常我們將**spl_autoload_register(*)**
放在入口指令碼,即一開始就引用進來。比如下面discuz的做法。
if(function_exist('spl_autoload_register'))else
}
PHP 自動載入類
在專案開發中,因為乙個檔案中只能寫乙個類,並且在執行過程中會有很多的類參與,如果乙個乙個的載入很麻煩,所以,就需要乙個機制實現在php執行過程中自動載入需要的類。1.2.1 類的規則 乙個檔案中只能放乙個類 必須 檔名和類名同名 必須 類檔案以.class.php結尾 不是必須 1.2.2 手動載入...
php自動載入類
先說乙個魔術方法 tostring 方法 當我們在定義類中成員後,通過構建物件,我們無法直接通過輸出物件得到物件的內容,這時我們可以通過構造乙個魔術方法 tostring 在構建物件的同時,啟用這個魔術方法,從而達到直接輸出物件內容的目的 例子class ren r new ren echo r 轉...
php自動載入類,PHP中類的自動載入的方法
類的自動載入是指,在外面的頁面中,並不需要去 引入 類檔案,但是程式會在需要的時候動態載入需要的類檔案。方法1 使用 autoload魔術函式 當程式需要某個類時,就會去呼叫該函式,該函式我們需要自己去定義並在其中寫好載入類檔案的通用語句。需要類是自動呼叫,而且會傳進來乙個類名,這個案例的檔名為21...