如何在调用指定方法后清除对象?
我有一个班级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():空查询