Есть ли способ в PHP для уничтожения объекта изнутри того же объекта?
PHP: уничтожить объект из объекта?
Ответ 1
Существует способ самоуничтожения объекта:
Используйте массив $GLOBALS, чтобы найти свой экземпляр в нем, затем используйте unset(). Имейте в виду, что unset() не всегда вызывает магический метод __destruct() все время...
В документации по PHP есть такая заметка (см. документацию unset()), но она точно не объясняет, когда unset() не вызывает метод __destruct().
И у меня было это конкретное поведение:
Я делаю a:
unset($myInstance);
$myInstance = clone $otherInstance;
И сначала вызывается __constructor, затем __destruct(). Или я хотел бы, чтобы __destruct() был вызван первым, потому что unset() до клонирования...
Я теперь застрял с этим...
Николя.
Ответ 2
Если метод вызывается в контексте объекта, то для этого объекта должна быть хотя бы одна ссылка. И поскольку php удаляет только недоступные объекты, ответ: no.
Ответ 3
Нет, я не думаю, что есть. Но вам нужна такая вещь?