首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php在使用命名空间时找不到类

php在使用命名空间时找不到类
EN

Stack Overflow用户
提问于 2017-12-04 13:32:49
回答 3查看 1.1K关注 0票数 1

我试图从另一个文件中创建一个类的对象。这两个文件都位于同一个文件夹中&我在两个文件中都使用了“命名空间应用程序”。在登录文件中,我试图获取类对象,但它找不到类。代码如下所示。

数据库类:“Database.php”

代码语言:javascript
复制
<?php
    namespace App;

    require_once 'config.php'; 

class Database{

    private $db;

    public function __construct(){

        $this->db =  new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);

    }

    public function getConnection(){

        return $this->db;

    }

login.php文件:

代码语言:javascript
复制
<?php

    namespace App;

    use App\Database; 

    require_once 'config.php'; 


    $DB = new Database(); 

    $con = $DB->getConnection;

当我执行login.php时,它写着致命错误: Uncaught错误:类'App\Database‘在第10行的login.php中找不到

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-12-04 13:55:03

我想你错过了需要数据库文件。此外,通过以下方式调用该方法。您正在调用不可用的属性getConnection。

代码语言:javascript
复制
<?php
namespace App;
require_once 'config.php';
require_once 'Database.php';

use App\Database;

$DB = new Database();
$con = $DB->getConnection();
票数 3
EN

Stack Overflow用户

发布于 2017-12-04 13:41:16

  • 如果您位于根命名空间中:

use \App\Database;您希望告诉PHP在名称空间根目录中搜索App名称空间,如果它在那里的话。

  • 如果您在App命名空间中:

use Database;您希望告诉PHP在当前名称空间中搜索Database,如果它在这个名称空间中的话。

  • 如果您位于另一个名称空间中:

如果您位于另一个名称空间(如\Blob),那么从根\App\Database引用,如上面所示。

名称空间应用;使用App\数据库;

目前正在查找\App\App\Database,因此它告诉您,App\Database不在\App命名空间中。

票数 2
EN

Stack Overflow用户

发布于 2017-12-04 15:15:03

如果要引用以下名称空间:

代码语言:javascript
复制
namespace App;

然后,您不需要在“use”中包含名称空间。

代码语言:javascript
复制
namespace App;
use Database;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47634542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档