我现在正在创建一个 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/