自动加载

2024-03-11  本文已影响0人  该死的金箍

PHP 类自动载入是一种机制,允许在使用类之前自动加载对应的类文件。在过去,为了使用一个类,必须在脚本中手动包含(include 或 require)类文件,这导致了大量的重复代码和维护困难。类自动载入通过注册自定义的自动加载函数来解决这个问题,当试图使用一个未定义的类时,自动加载函数会被调用,以尝试加载相应的类文件。

spl_autoload_register 函数:spl_autoload_register() 函数允许注册一个或多个自动加载函数,当试图使用一个未定义的类时,这些函数将被调用来尝试加载相应的类文件。

// 定义自动加载函数  D:www/index.php
spl_autoload_register(function ($class_name) {
    $prefix = 'MyNamespace\\';
    $base_dir = __DIR__ . '\\';
    $len = strlen($prefix);
    if (strncmp($prefix, $class_name, $len) !== 0) {
        return;
    }
    $relative_class = substr($class_name, $len);
    $file = $base_dir . str_replace('\\', '/', $relative_class) . '.php';
    if (file_exists($file)) {
        require $file;
    }
});
use MyNamespace\Test1;
$obj = new Test1();

D:www/test1.php
namespace MyNamespace;
class Test1 {
    public function __construct() {
        echo "Test1 class instantiated\n";
    }
}

上一篇 下一篇

猜你喜欢

热点阅读