DonkeyPHP框架-基礎知識準備
阿新 • • 發佈:2018-10-31
每一個框架都會有類自動載入,而每一個檔案都得自己去require,在php中有相應的方法spl_auto_register 與__autoload。兩者的區別如下
//__autoload用法
function __autoload($classname)
{
$filename = "./class/".$classname.".class.php";
if (is_file($filename))
{
include $filename;
}
}
//spl_autoload_register用法
spl_autoload_register('load_class' );
function load_class($classname)
{
$filename = "./class/".$classname.".class.php";
if (is_file($filename))
{
include $filename;
}
}
說明一下 這邊spl_auto_register的好處在於可以多個自動載入函式
下面的例子說明,如果autoload1載入不到b,系統會呼叫autoload2載入b,如果都沒有就會報錯。spl_auto_register會依次呼叫,但是__auto只能是一次
define('BASE_PATH' ,dirname(__FILE__).'/') ;
function autoload1 ($name) {
$file = BASE_PATH.'lib1/'.$name.'.class.php';
if(file_exists($file)){
include_once($file);
return true;
}
}
function autoload2 ($name) {
$file = BASE_PATH.'lib2/'.$name.'.class.php';
if(file_exists($file)){
include_once ($file);
return true;
}
}
spl_autoload_register('autoload1');
spl_autoload_register('autoload2');
new a();
new b();