深入理解PHP類的自動載入機制

2022-10-06 09:00:08 字數 1023 閱讀 9746

php的自動載入:

在php5以前,我們要用某個類或類的方法,那必須include或者require,之後才能使用,每次用乙個類,都需要寫一條include,麻煩

php作者想簡單點,最好能引用乙個類時,如果當前沒有include進來,系統能自動去找到該類,自動引進~

於是:__autoload()函式應運而生。

通常放在應用程式入口類裡面,比如discuz中,放在class_core.php中。

先講淺顯的例子:

第一種情況:檔案a.php中內容如下

<?php class a

}?>

檔案c.php 中內容如下:

<?php function __autwww.cppcns.comoload($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的類自動載入機制

在 php開發過程中,如果希望從外部引入乙個class,通常會使用include和require方法,去把定義這個class的檔案包含進來。這個在小 規模開發的時候,沒什麼大問題。但在大型的開發專案中,這麼做會產生大量的require或者include方法呼叫,這樣不因降低效率,而且使得 難 以維護...

PHP的類自動載入機制

在php開發過程中,如果希望從外部引入乙個class,通常會使用include和require方法,去把定義這個class的檔案包含進來。這個在小規模開發的時候,沒什麼大問題。但在大型的開發專案中,這麼做會產生大量的require或者include方法呼叫,這樣不因降低效率,而且使得 難以維護,況且...

PHP的類自動載入機制

在php開發過程中,如果希望從外部引入乙個class,通常會使用include和require方法,去把定義這個class的檔案包含進來。這個在小規模開發的時候,沒什麼大問題。但在大型的開發專案中,這麼做會產生大量的require或者include方法呼叫,這樣不因降低效率,而且使 得 難以維護,況...