php的自動載入:
在php5以前,我們要用某個類或類的方法,那必須include或者require,之後才能使用,每次用乙個類,都需要寫一條include,麻煩
php作者想簡單點,最好能引用乙個類時,如果當前沒有include進來,系統能自動去找到該類,自動引進~
於是:__autoload()函式應運而生。
通常放在應用程式入口類裡面,比如discuz中,放在class_core.php中。
先講淺顯的例子:
第一種情況:檔案a.php中內容如下
<?phpclassa}
?>
檔案c.php 中內容如下:
<?phpfunction __autoload($class)
}
$a = new a(); //這邊會自動呼叫__autoload,引入a.php檔案
?>
第二種情況:有時我希望能自定義autoload,並且希望起乙個更酷的名字loader,則c.php改為如下:
<?phpfunction loader($class)}
spl_autoload_register('loader'); //
註冊乙個自動載入方法,覆蓋原有的__autoload
$a = new
a();
?>
第三種情況:我希望高大上一點,用乙個類來管理自動載入
<?phpclass loader
}
}
spl_autoload_register(array('loader', 'loadclass'));
$a = new a();
?>
當前為最佳形式。
通常我們將spl_autoload_register(*)放在入口指令碼,即一開始就引用進來。比如下面discuz的做法。
if(function_exist('spl_autoload_register'))else}
這段扔在入口檔案最前面,自然是極好的~
//good
php載入其他php檔案,PHP自動載入類的實現
本文介紹了php中的自動載入操作實現方法,結合例項形式詳細分析了php自動載入的概念 原理 實現方法及相關操作注意事項。我們日常例項化乙個類,必須使用require 載入這個類檔案 如果載入的檔案過多,大量使用require來載入檔案,過於繁瑣與麻煩。所以在php5.1.2版本後,php加入自動實現...
PHP自動載入class檔案的方案
php5中有乙個很方便的 autoload的魔術函式,php manual中的示例如下 算是很方便的乙個函式,然而有乙個缺陷就是沒有命名空間,大量的class不得不放在乙個目錄下面,才可以用這個自動載入php的魔術函式,如果class檔案要放在不同的目錄裡面,這個自動載入就無能為力了。為了解決這個問...
詳解PHP檔案的自動載入(autoloading)
傳統上,在php裡,當我們要用到乙個class檔案的時候,我們都得在文件頭部require或者include一下 require once includes database.php require once includes user.php 但是一旦要呼叫的文件多了,就得每次都寫一vlbbt行,...