1 常规的自动加载类函数
//类的名称和文件名的名称一样
function __autoload($className){
$filename = "./libs/$className.php";
if(file_exists($filename))
require_once($filename);
}
$obj = new Student();
只能写一个路径,比较有局限性
2 自定义类文件加载函数
spl_autoload_register('func1');
spl_autoload_register('func2');
function func1($className){
$filename = "./libs/$className.php";
if(file_exists($filename))
require_once($filename);
}
function func1($className){
$filename = "./public/$className.php";
if(file_exists($filename))
require_once($filename);
}
$obj = new Student();
解决了加载不同路径的问题
3 匿名函数
spl_autoload_register(function ($className){
$arr = [
'./libs/$className.php',
'./public/$className.php',
]
foreach ($arr as $filename) {
if(file_exists($filename))
require_once($filename);
}
});
$obj = new Student();
好用