学习视频写了一个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是最后载入的.请高人指点,谢谢
spl_autoload_register只是注册了一个自动加载函数,并不是在注册时执行,而是在遇到未加载的类时执行(也不是你说的最后载入(前面半句是对的))。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。