【问题标题】:Fatal error: Class 'App\PDO' not found in致命错误:在中找不到类“App\PDO”
【发布时间】:2012-02-28 23:32:07
【问题描述】:

我在尝试使用命名空间时收到此错误。

我有

namespace App;

顶部,类的样子

class database{

  function __construct(..)
    try{
      $this->db = new PDO(...)   <-- here the error
    ...
  }
}

我不明白命名空间是如何工作的?如果没有找到 app/PDO,PHP 不应该回退到默认的 PDO 类吗?

【问题讨论】:

    标签: php namespaces pdo


    【解决方案1】:

    如果找不到 app/PDO,PHP 是否应该回退到默认的 PDO 类?

    不,不应该。

    来自documentation

    类名总是解析为当前的命名空间名。因此,要访问内部或非命名空间的用户类,必须使用完全限定的名称来引用它们

    对于您的具体示例,PDO 的完全限定名称将是 \PDO

    【讨论】:

    • 知道为什么 \PDO 对我不起作用吗?我使用 PHP 5.5.12。
    • 我想通了。只需在命名空间之后和类之前添加use PDO;
    【解决方案2】:

    只需在命名空间之后和类之前添加use PDO;

    【讨论】:

    • 这解决了我的问题。
    猜你喜欢
    • 2012-08-02
    • 2018-04-07
    • 1970-01-01
    • 1970-01-01
    • 2019-07-15
    • 2015-05-31
    相关资源
    最近更新 更多