php的自動載入:
在php5以前,我們要用某個類或類的方法,那必須include或者require,之後才能使用,每次用乙個類,都需要寫一條include,麻煩
php作者想簡單點,最好能引用乙個類時,如果當前沒有include進來,系統能自動去找到該類,自動引進~
於是:__autoload()函式應運而生。
通常放在應用程式入口類裡面,比如discuz中,放在class_core.php中。
先講淺顯的例子:
第一種情況:檔案a.php中內容如下
<?php
class a
檔案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
}這段扔在入口檔案最前面,自然是極好的~
//good
php 載入 php自動載入方式
本篇文章介紹的內容是關於php自動載入方式,現在分享給大家,有需要的朋友可以參考一下這篇文章的內容 php載入檔案方式 1 include,include once,requice,requice one常規載入 2 autoload 3 spl autoload register 常規載入方式 假...
php自動載入
很多開發者寫物件導向的應用程式時對每個類的定義建立乙個 php 原始檔。乙個很大的煩惱是不得不在每個指令碼 每個類乙個檔案 開頭寫乙個長長的包含檔案列表。在 php 5 中,不再需要這樣了。可以定義乙個 autoload 函式,它會在試圖使用尚未被定義的類時自動呼叫。通過呼叫此函式,指令碼引擎在 p...
php自動載入
php自動載方法有兩種.第一種方案用 autoload,這個函式較簡單,也較弱.但有一問題沒有解決,就是在include前判斷檔案是否存在的問題.1 2 3 4 5 6 7 8 9 10 11 12 13 set include path aa path separator get include ...