spl_autoload_register()函数中,苏南大叔有提到:具体的load逻辑实现,就是仁者见仁智者见智的事情了。那么,本文中,苏南大叔就提供一些可能的备选方案。具体来说,就是关于:spl_autoload_register()的第一个参数autoload_function的具体理解。

方案大全预览

苏南大叔:php如何实现spl_autoload_register具体load逻辑 - php-script
php如何实现spl_autoload_register具体load逻辑(图5-1)

这里先说个下述方案的前提:
MyNamespace命名空间下的MyClass类文件,存在的位置是:mynamespace/myclass.php

在不同的系统下,文件名称的大小写问题处理是不一样的,所以,文件名大小写问题,一定要注意,否则就会出现很多莫名其妙的问题。比如:mac系统和win系统,大小写就是不敏感的。而centos系统就是大小写敏感的。

如果不考虑去文件名路径的问题,下面列出了五种函数,来实现这个具体的自动加载的逻辑。注意:这五种函数任选其一即可。

spl_autoload_register(function ($class) {
    echo("如下五种方式,任选一种即可:" . $class . "<br/>");
    spl_autoload($class);
    $file = str_replace("\\", "/", strtolower($class));
    $file .= ".php";
    include($file);
    require($file);
    include_once($file);
    require_once($file);
});
$test = new \MyNamespace\MyClass();

苏南大叔:php如何实现spl_autoload_register具体load逻辑 - autoload_all
php如何实现spl_autoload_register具体load逻辑(图5-2)

相关文章

结论

本篇文章设计的问题,因为答案太多,所以就没有明确的结论了。大家根据自己的实际情况写这个函数功能就可以了。更多相关文章,点击下面的链接,查看吧。

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

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

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

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

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