首页 > PHP技术 > php中级 > php项目中类的自动加载
2020
03-18

php项目中类的自动加载

attachments-2020-03-ZriYnFiv5e71bcf4bd8a3.jpg


主要函数:spl_autoload_register() — 注册给定的函数作为 __autoload() 的实现

将函数注册到SPL __autoload函数队列中。如果该队列中的函数尚未激活,则激活它们。

如果在你的程序中已经实现了__autoload()函数,它必须显式注册到__autoload()队列中。因为spl_autoload_register()函数会将Zend Engine中的__autoload()函数取代为spl_autoload()或spl_autoload_call()。

<?php

// $class 类名
function autoloader_1($class) {
    include 'classes/' . $class . '.class.php';
}

function autoloader_2($class) {
    include 'classes/' . $class . '.class.php';
}

// 可以多次使用,但 __autoload() 函数只能使用一次。
spl_autoload_register('autoloader_1');
spl_autoload_register('autoloader_2');

// 或者,自 PHP 5.3.0 起可以使用一个匿名函数
spl_autoload_register(function ($class) {
    include 'classes/' . $class . '.class.php';
});

php类的自动加载实例:

index.php文件

<?php

define("BASEDIR", __DIR__);
include BASEDIR . "/app/Loader.php";
// 自动加载类及文件
spl_autoload_register('\\app\\Loader::Autoload');

app目录下的Loader.php文件

<?php

namespace app;

class Loader
{
    static function autoload( $class )
    {
        require BASEDIR . '/' . str_replace('\\', '/', $class) . '.php';
    }
}

以上内容希望帮助到大家

attachments-2020-03-8JyMp0e75e71bc89ec51d.jpg


扫码芷若 获取免费视频学习资料

编程学习

查 看2019高级编程视频教程免费获取