spl_autoload_register
的简介
spl_autoload_register
函数是实现自动加载未定义类功能的的重要方法- 所谓的自动加载意思就是我们的
new
一个类的时候必须先include
或者require
的类文件,如果没有include
或者require
,则会报错。 - 但是这样就必须在文件头部写上许多
include
或者require
文件,非常麻烦。 - 为了使得没有
include
或者require
类的时候也正常new一个类,所以有了自动加载的概念 - 也就是说
new
一个类之前不用事先包含类文件也可以正常new
,这样我们的文件头部就不用包含许多include(require)
。这就是为什么说spl_autoload_register
是框架灵魂。
spl_autoload_register
的三个参数
autoload_function 参数
这是一个函数 方法
名称,可以是 字符串
或者 数组
调用类方法使用。这个函数 方法
的功能就是,来把需要 new
的类文件包含 include(require)
进来,这样 的时new
候就不会找不到文件。其实就是封装整个项目的 include
和 require
功能。
可以理解为当我们 new
一个类,并且这个类文件没有被包含时候就会执行这个autoload_function方法
throw 参数
此参数设置了 autoload_function 无法成功注册时, spl_autoload_register()
是否抛出异常。
prepend 参数
如果是 true
,spl_autoload_register()
会添加函数到队列之首,而不是队列尾部。
栗子.1
如下:先举个错误的栗子,可以看到当我们直接 new
一个未包含 class类
文件时候会报错
栗子.2
如下:当使用 spl_autoload_register()
后当 new
一个未包含的类时候,会去执行 spl_autoload_register()
第一个参数函数名的函数,这个函数有一个参数就是需要 new
的类名,这个函数的功能就是把这个类给包含进来(类名和文件名一致),这样就实现了自动加载功能。
栗子.3
如下:当然我们也可以改成这样
© 著作权归作者所有
举报
发表评论
0/200