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

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

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

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

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

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

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

20 Апр 2024 в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир