Как я могу очистить объект после вызова указанного метода?
У меня есть класс 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)
это работает нормально, но когда я пытаюсь запустить код, я получаю сообщение об ошибке
Неустранимая ошибка: вызов функции-члена query () для null
хоть $tmp
по-прежнему определяется как object(mysqli_result)
после звонка $this->clearObject(NULL)
,
Кажется, что return $tmp
пытается «переопределить» $tmp
перед возвратом — это правильно? Как я мог решить эту проблему?
PS: clearObject(NULL
устанавливает все значения свойств в NULL
Вот почему сообщение об ошибке содержит null
,
PPS: не хочу уничтожать (unset()
) предмет DB
!
Спасибо заранее!
ОБНОВИТЬ: Я просто мешаю $mysqli
от очистки $sql
(это на самом деле ДОЛЖНО быть очищено после mysqli->query()
очищается и поэтому сообщение об ошибке
Предупреждение: mysqli :: query (): пустой запрос
Задача ещё не решена.
Других решений пока нет …