发生PDO异常时,PHP取消设置类变量

时间:2016-08-18 10:01:54

标签: php mysql exception pdo exception-handling

我刚刚在我编写的一些脚本上发现了这种情况。对我来说非常奇怪。当发生PDO异常时,在异常处理程序中我无法访问类变量。

我正在使用: PHP 5.5.9-1ubuntu4.14(cli)(建于2015年10月28日01:34:46) 版权所有(c)1997-2014 PHP小组 Zend Engine v2.5.0,版权所有(c)1998-2014 Zend Technologies     Zend Technologies的Zend OPcache v7.0.3,Copyright(c)1999-2014,

class myClass extends PDO {
    var $myVar
    public function __construct ($text) {
        $this->myVar = $text."_Hello";
        echo $this->myVar;
        try {
            //try to connect to db here
        } catch (PDOException $e) {
            echo $e->getMessage();
            echo $this->myVar;
            die;
        }
    }
}

所以当连接失败时(在这种情况下错误是连接太多),即使第一个echo $ myVar工作,catch块中的那个也给了我&#39; PHP注意:未定义的变量:&#39; < / p>

如果我改为这个,它可以正常工作:

class myClass extends PDO {
    var $myVar
    public function __construct ($text) {
        $anotherVar = $text."_Hello";
        echo $anotherVar;
        try {
            //try to connect to db here
        } catch (PDOException $e) {
            echo $e->getMessage();
            echo $anotherVar;
            die;
        }
    }
}

我显然需要全局变量用于其他功能。知道为什么会这样吗?

0 个答案:

没有答案