php - 在命名空间中找不到类

标签 php namespaces

我现在正在创建一个 API 包装器,我决定创建一个加载客户端的 index.php,仅用于测试/调试目的。

这是我的 index.php

require_once("src/API/Client.php");

$client = new \API\Client();

这是我的 API\Client
namespace API;

class Client
{
    public function __construct()
    {
        $this->_requester = new Client\Request();
        return $this;
    }
}

我得到的错误是在 Client.php 中找不到 API\Client\Request

它确实存在,可以在下面查看:
namespace API\Client

class Request
{
    protected $_requestUrl;

    public function __construct()
    {
        return $this;
    }    
}

这是我第一次尝试制作具有完全命名空间类的应用程序,因此我非常感谢您的帮助。

最佳答案

您错过了 require_once语句来包含包含 Request 的脚本类定义。

require_once("src/API/Client.php");
require_once("src/API/Client/Request.php"); // <-- or whatever the filename is

我建议使用自动加载器,这意味着您不需要任何包含语句。例如这个 PSR-0 autoloader .

另外,您对 return 的使用构造函数中的语句没有任何作用。构造函数不能返回值。

关于php - 在命名空间中找不到类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26402339/

相关文章:

php - 只需从 PHPExcel 获取一行

php artisan route::list 给我一个错误:试图获取非对象的属性

php - 如何从在 PHP 中使用自动加载加载的类中捕获异常?

rust - 不能在其他文件 rust 中使用已实现的特征

namespaces - 在闭包库中使用提供

php - 创建一个 PHP 对象,其中类名是一个变量

php - 获取迭代的 ul 内容的唯一 id

php - Laravel 5.0 utf8 转换?

javascript - 将查询字符串添加到 data-href

php - 将表单数据放入数组,将它们传递给构造函数,然后插入数据库的最佳方法是什么?