说起php里面autoload自动加载功能,是非常的实用。如果你不懂的自动加载是什么意思,那么你一定知道php里面无处不在的require_once或者include_once。对,autoload其实说白了,其实就是可以自动执行require系列函数。

在php7.2全面到来的今天,这个功能就体现为函数:spl_autoload_register(),本函数最开始出现于php5.1

spl_autoload_register()整体说明

从php官方文档上,大家可以发现,它有三个参数。但是大多数情况下,自会设置其第一个参数,也就是说,具体的autoload的相关逻辑,这个逻辑就是仁者见仁智者见智了。大家的思路不同,这个函数的实现就并不一致。

bool spl_autoload_register ([ callable $autoload_function [, bool $throw = true [, bool $prepend = false ]]] )
  • 第一个参数autoload_function,就是autoload函数逻辑的具体实现。
  • 第二个可选参数throw,指的是autoload函数加载失败的时候,是否抛出异常。这个参数有点匪夷所思...
  • 第三个可选参数prepend,设置为true的时候,会把当前autoload规则添加到队列之首,而不是默认的队尾。
  • 成功时,返回true,失败返回false。

下面给出几种方案,适用于第一个参数autoload_function的几种变化。当然,其具体的load逻辑,方案中都是用//todo...代替,因为这毕竟是个仁者见仁智者见智的问题。如果您要纠结这个事情的话,其实就是用require函数包含到你的正确的文件路径就可以了。

套路上,就是类似下面这样的:

function load($class){
  require($class.".php");
}
spl_autoload_register("load");
$demo=new TheClass();

总结

由于篇幅限制,苏南大叔在这里就说一下第一个参数autoload_function,其他的不常用参数将在spl_autoload_register()的进阶版本中进行阐述。

更多相关spl_autoload_register相关文章,请点击下面这个链接查看:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接作者。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

 【加群】加入QQ群【175454274】和大家一起讨论这个问题

 【源码】本文代码片段及相关软件,请点此获取

 【绝密】秘籍文章入口,仅传授于有缘之人   php    autoload

本站的忠实读者小伙伴,正在阅读下面这些文章: