Как удалить объект, вызвав какой-либо его же собственный метод (PHP)? Например, есть объект, который вызывает какую-то свою функцию (метод). Необходимо, чтобы после её вызова, объект стал null. Далее он записывается в базу, и если он null то ничего не записывается. Собственно мне нужно разрушить его собственной функцией, как это сделать?
P.S. я знаю, как это сделать с помощью return null или return $this. Но мне нужен метод типа void, который ничего не возвращает.
Спасибо.
UPD
Пробовал так:public function test()
{
unset($this);
}
Не помогло :(

21 Авг 2019 в 07:08
167 +1
1
Ответы
1

В PHP не существует способа удалить объект внутри его метода таким образом, чтобы он стал null вне этого метода. Объекты в PHP управляются автоматическим сборщиком мусора, который сам удаляет объекты, когда на них нет ссылок.

Если вы хотите, чтобы объект был удален после выполнения определенного метода, вы можете написать метод, который бы явно присваивал null объекту после выполнения нужных действий. Например:public function deleteObject()
{
// выполнение каких-то действий
$this = null;
}

Однако, после вызова этого метода, объект не будет удален немедленно, а только когда на него не будет больше ссылок.

Если вам необходимо убедиться, что объект удален немедленно, вы можете использовать unset для удаления ссылки на объект извне метода. Например:$obj = new MyClass();
$obj->deleteObject();
unset($obj);

Но в любом случае, удаление объекта в PHP происходит автоматически при отсутствии ссылок на него, поэтому нет необходимости явно его удалять внутри метода.

20 Апр в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 588 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир