在php类

时间:2015-08-17 20:02:41

标签: php scope try-catch

我有问题要完全理解为什么以下代码不起作用。假设我有一个使用数据库连接构造的类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!
        }
    }
}

0 个答案:

没有答案