Есть ли способ в 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
Нет, я не думаю, что есть. Но вам нужна такая вещь?