0

我有一条简单的线class autorization extends mysql,它会导致致命错误:在...中的非对象上调用成员函数 close()在那一行是

function __destruct(){
        $this->connection->close();
    }

构造函数

$mysqli = new mysqli(*****);
$this->connection = $mysqli;

目前没有其他方法ot class mysql不使用

4

2 回答 2

1

连接属性未初始化。如果您在mysql类中有一个构造函数,请确保您没有通过在autorization类中指定一个构造函数来完全覆盖它。这可以通过添加:

parent::__constructor( any_params_to_mysql_go_here );

顺便说一句,您的问题不清楚谁维护连接属性:mysql 类与否?

于 2012-08-08T07:43:32.203 回答
0

出于测试目的尝试

function __destruct(){
    if ( !is_object($this->connection) ) {
        echo ' $this->connection is not an object', "\n";
        var_dump($this->connection);
        die;
    }
    if ( !method_exists($this->connection, 'close') ) {
        echo '$this->connection has no method close()', "\n";
        echo get_class($this->connection), "\n";
        die;
    }
    $this->connection->close();
}
于 2012-08-08T07:26:37.033 回答