方法调用后清除对象

时间:2015-03-23 14:23:07

标签: php class clear

如何在调用指定方法后清除对象?

我有一个班级DB,想要在调用mysqli->query()后清除所有属性。

class DB
{
    private $mysqli = 'This is an instantiated MySQLi object';
    private $sql    = 'This variable is filled with an SQL query';

    public function query()
    {
        $tmp = $this->mysqli->query($this->sql); // Start MySQLi query to MySQLi server

        $this->clearObject(NULL); // clear all properties of this object

        var_dump($tmp); // until here $tmp is still declared as mysqli_result

        return $tmp; // return the temporary variable $tmp. $tmp is NULL now.
    }
}

$DB = new DB;
$DB->query();

我已经有方法clearObject(NULL)可以正常工作,但是当我尝试运行代码时,我收到错误消息

  

致命错误:在null

上调用成员函数query()

虽然$tmp在调用object(mysqli_result)后仍被定义为$this->clearObject(NULL)

似乎return $tmp在返回之前尝试“重新声明”$tmp - 这是对的吗?我该如何解决这个问题?

PS:clearObject(NULL将所有属性值设置为NULL,这就是错误消息包含null的原因。 PPS:我不想破坏(unset())对象DB

非常感谢提前!

更新:我只是阻止$mysqli被清除。 $sql(实际上必须在mysqli->query()被清除后清除,因此错误消息是

  

警告:mysqli :: query():空查询

0 个答案:

没有答案