1. 程式人生 > >DonkeyPHP框架-基礎知識準備

DonkeyPHP框架-基礎知識準備

每一個框架都會有類自動載入,而每一個檔案都得自己去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();