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";
}
}
网友评论