PHP命名空间和内置类的问题,如何解决?

2022-08-30 17:40:12

我正在用PHP编写一个小型库,并且遇到一些内置类无法读取的问题。例如:

namespace Woody;

class Test {
  public function __construct() {
    $db = new PDO(params);
  }
}

这给了我:

PHP 致命错误:在 /var/www/test 中找不到类 'Woody\PDO'.php


答案 1

这:

namespace Woody;
use PDO;

艺术

$db = new \PDO(params);

以防万一的要点是,该类不是命名空间中的完整限定名,因此PHP将查找哪个不可用。PDOWoody\PDO

有关如何将类名解析为完全限定名的详细说明,请参阅名称解析规则文档


答案 2

在类名前添加反斜杠,即

$db = new \PDO(params);

推荐