PHP類的自動載入機制

2022-07-24 03:00:14 字數 1055 閱讀 3156

php的自動載入:

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

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

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

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

先講淺顯的例子:

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

<?php

class a   

}   

$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{

function __autoload($class){         //如果不是,則重寫php原生函式__autoload函式,讓其呼叫自己的core中函式。

return core::autoload($class);

這段扔在入口檔案最前面,自然是極好的~

**:

PHP的類自動載入機制

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

PHP的類自動載入機制

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

PHP的類自動載入機制

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