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();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值