我有问题要完全理解为什么以下代码不起作用。假设我有一个使用数据库连接构造的类stackClass。一段时间后,调用另一个函数,它依赖于这个确切的数据库连接。但是,在try / catch-block中正确初始化的内部变量在另一个函数中是未知的。这是一些范围问题吗?
class stackClass {
var $db = null;
function __construct() {
try {
// some other code, config and stuff
$this->db = new MysqliDb ($host, $user, $pass, $db);
if (!$this->db) throw new Exception("Could not connect to the database.");
} catch(Exception $e) {
// some error handling
}
}
function removeFromQueue($job=null) {
try {
if (!($db = $this->db)) throw new Exception("No database connection.");
} catch (Exception $e) {
// $db is not known and the execption gets thrown here!
}
}
}