spl_autoload_register的作用

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(),

猜你喜欢

转载自www.cnblogs.com/mengzhilva/p/10870840.html