开发者社区> 问答> 正文

php自定义框架类文件载入的疑问,报错

学习视频写了一个php的框架,有一个问题一直不是很清楚,想咨询一下.

app(应用)类中:
//定义了一个自动载入类函数
spl_autoload_register(array(__CLASS__,'auto'));

//载入用户自定义扩展文件(用于载入App/Common/Lib下的文件)
self::_use_import();
这个函数读取配置文件中的AUTO_LOAD_FILE文件数组('AUTO_LOAD_FILE'=>array('func.php','upload.class.php'),),然后使用foreach循环载入文件.

然后我在控制器IndexController.php中的index方法中,新建了upload.class.php中的upload类,并执行方法$obj=new upload;
$obj->up();

这里有一个问题:我app类中的spl_autoload_register(array(__CLASS__,'auto'));在self::_use_import();之前了.按这个顺序,应该先到auto方法中尝试载入类文件.但实际是从_use_import()载入的.

是不是可以理解为新建类时,先查找类文件是不是被其他函数载入了,如果没有任何其他函数载入该类文件,再调用自动载入类文件函数auto,和本身的顺序并没有关系.自动载入类函数auto是最后载入的.请高人指点,谢谢


展开
收起
一枚小鲜肉帅哥 2020-06-20 21:14:48 2801 0
1 条回答
写回答
取消 提交回答
  • 菜不可及的程序猿

    spl_autoload_register只是注册了一个自动加载函数,并不是在注册时执行,而是在遇到未加载的类时执行(也不是你说的最后载入(前面半句是对的))。

    2020-06-20 21:15:02
    赞同 展开评论 打赏
问答分类:
PHP
问答地址:
问答排行榜
最热
最新

相关电子书

更多
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
PHP安全开发:从白帽角度做安全 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载