当我们news 实化一个类时,当前页面没有引入这个类,就会触发这个函数 sql_autoload_register();
给这个函数传入一个我们写好的类,执行自动加载的方法,例如
sql_autoload_register('\core\auto::load'); //执行auto类的load方法
在load方法,接收到一个参数,去引入对应的文件,就实现了自动加载类的功能了
下面是我测试的案例:
创建 index.php , core/auto.php ,core/rote.php<?php
include '/core/auto.php'; //引入自动加载类
spl_autoload_register('\core\auto::load'); //触发函数,传入自动加载类方法
new \core\rote();//实例化一个类
?>
创建core文件夹下 core/auto.php<?php
namespace core;
class auto
{
//接收到$class参数,加载对应的类
static public function load($class){
$file = str_replace('\\','/',$class);
$file = '/'.$file.'.php';
include $file;
}
}
?>
创建core文件夹下 core/rote.php<?php
namespace core;
class rote
{
function __construct(){
echo '输出测试';
}
}
结果: