Php !检查PDO链接状态时,empty()检查失败。。。为什么?

Php !检查PDO链接状态时,empty()检查失败。。。为什么?,php,pdo,is-empty,Php,Pdo,Is Empty,我在一个名为Connection的类中有以下方法: public function output($query = null) { if (!empty($this->attributes["link"])) { print "OK!"; } else { print "NO!"; } } $this->attributes[“link”]的值来自构造函数中的以下操作: try { $this->attributes[

我在一个名为
Connection
的类中有以下方法:

public function output($query = null) {
    if (!empty($this->attributes["link"])) {
        print "OK!";
    } else {
        print "NO!";
    }
}
$this->attributes[“link”]
的值来自构造函数中的以下操作:

try {
    $this->attributes["link"] = new \PDO(<...>);
catch (\PDOException $e) {
    <...>
} finally {
    return $this;
}
试试看{
$this->attributes[“link”]=new\PDO();
捕获(\p异常$e){
}最后{
退还$this;
}
我通常使用
if(!empty()){}
构造来测试变量的存在性,目前为止,除此之外,它在每个结构或代码段中都能正常工作

作为一个对象似乎并不是这不起作用的原因,因为我可以对数据库管理器对象测试相同的检查,而且它是有效的。也许PDO对象是一种特殊的对象,不容易进行变量测试,或者我缺少什么


编辑-我的软件配置如下:Linux 3.11.1、Apache 2.4.6、PHP 5.5.4和MySQL 5.6.13

为什么不检查是否是PDO实例

if ($this->attributes['link'] instanceof \PDO) {
    // ...
} else {
    // ...
}

在PHP中从未使用过
instanceof
操作符(关于PHP中的OOP,我还没有真正探讨过),所以…太棒了!我的问题本身并没有解决,但我清理了代码,现在效率更高了。非常感谢!)