我刚刚在我编写的一些脚本上发现了这种情况。对我来说非常奇怪。当发生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;
}
}
}
我显然需要全局变量用于其他功能。知道为什么会这样吗?