spl_autoload_register的作用
当php实例化一个类的时候,这个类如果在另外的文件,那么不用include或require的时候就会报错,为了解决这个问题,可以用spl_autoload_register
spl_autoload_register有三个参数(autoload_function,throw=false,prepend=false)
autoload_function
欲注册的自动装载函数。如果没有提供任何参数,则自动注册 autoload 的默认实现函数spl_autoload()。
throw
此参数设置了 autoload_function
无法成功注册时, spl_autoload_register()是否抛出异常。
prepend
如果是 true,spl_autoload_register() 会添加函数到队列之首,而不是队列尾部。
用法:
test.php 文件里有类的定义
class test(){
function run(){
echo '执行';
}
}
b文件中
spl_autoload_register(‘load’,true,true);
function load($className){
echo '我来引入文件'.$classname;
include('./'.$name.'.php');
}
$c = new test();
$c=>run();
//输出'我来引入文件test执行’
需要注意:
1.定义类的文件类名需要和文件名相同,spl_autoload_register的函数变量默认引入的文件是类名。
2.spl_autoload_register的第一个参数,可以是函数名,也可以是静态方法,例如:loader::load(),