我正在用PHP编写一个小型库,我遇到了一些内置类无法读取的问题。例如:
namespace Woody;
class Test {
public function __construct() {
$db = new PDO(params);
}
}
这给了我:
PHP致命错误:/var/www/test.php中找不到“Woody \ PDO”类
答案 0 :(得分:38)
此:
namespace Woody;
use PDO;
或者:
$db = new \PDO(params);
请注意,类PDO
不是命名空间中的完全限定名,因此PHP会查找不可用的Woody\PDO
。
有关如何将类名解析为完全限定名称的详细说明,请参阅Name resolution rulesDocs。
答案 1 :(得分:5)
在班级名称前添加反斜杠,即
$db = new \PDO(params);
答案 2 :(得分:3)
以下应该有效:
namespace Woody;
class Test {
public function __construct() {
$db = new \PDO(params);
}
}
您需要使用反斜杠为PDO添加前缀,以便PHP知道它在全局命名空间中。