大佬教程收集整理的这篇文章主要介绍了PHP命名空间混乱,找不到类,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
错误信息:
Fatal error: Class 'DB\AT_Database' not found in /var/www/...
DB类
文件:AT_Database.php
namespace DB; class AT_Database { ... }
CRUD课程
文件:AT_CRUD.php
namespace DB\CRUD; use DB\AT_Database; class AT_CRUD extends AT_Database { public function __construct() { } }
可能是不值得作为一个答案,但只是偶然添加它可以帮助那些犯这样的错误的人.
正如我在其中一篇评论中提到的,我使用glob来自动加载要包含的所有类文件.
foreach ( glob( $this->classes_dir . "/*.php" ) as $class ) { include_once $class; }
现在我的文件名是AT_CRUD.php和AT_Database.php.在这里,我意识到php按字母顺序加载文件.所以,当我将AT_Database类扩展到AT_CRUD时,它永远找不到.
这只是因为php首先加载AT_CRUD而不是AT_Database所以要么我必须将类实例化为或者使用类似依赖注入的东西,如@prehfeldt在他的评论中提到的那样.
以上是大佬教程为你收集整理的PHP命名空间混乱,找不到类全部内容,希望文章能够帮你解决PHP命名空间混乱,找不到类所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。