加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

PHP命名空间混乱,找不到类

发布时间:2020-05-25 08:47:37 所属栏目:PHP 来源:互联网
导读:我在自己的文件中有两个类在同一个文件夹中.但是当我试图将一个扩展到另一个时,它会给命名空间和类找不到错误. Info: It is the first time I am extending class using namespace. Also nested namespace is new to me. DBCRUD So may be I am doing complet

我在自己的文件中有两个类在同一个文件夹中.但是当我试图将一个扩展到另一个时,它会给命名空间和类找不到错误.

Info: It is the first time I am extending class using namespace. Also nested namespace is new to me. DBCRUD So may be I am doing
completely wrong with namespace.

错误信息:

Fatal error: Class 'DBAT_Database' not found in /var/www/...

DB类

文件:AT_Database.php

namespace DB;

class AT_Database
{
    ...
}

CRUD课程

文件:AT_CRUD.php

namespace DBCRUD;


use DBAT_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在他的评论中提到的那样.

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读