PHP: ¿Destruir un objeto desde dentro del objeto?
Pregunta
¿Hay alguna manera en PHP de destruir un objeto desde ese mismo objeto?
Solución
Hay una manera de autodestruir un objeto:
Use la matriz $ GLOBALS
para encontrar su instancia en ella, luego use unset ()
. Tenga en cuenta que unset ()
no llama automáticamente al método mágico __destruct ()
todo el tiempo ...
Hay una nota de esta manera (consulte la documentación unset ()
) en la documentación de PHP, pero no explica exactamente cuándo unset ()
no llame al método __destruct ()
.
Y tuve este comportamiento específico:
Hago un:
unset($myInstance);
$myInstance = clone $otherInstance;
Y primero se llama al __constructor
, luego al __destruct ()
. O me gustaría que se llame primero al __destruct ()
porque unset ()
está antes de clonar ...
Estoy atrapado con eso ahora ...
Nicolas.
Otros consejos
Si se llama a un método en el contexto del objeto, entonces debe haber al menos una referencia a ese objeto. Y dado que php solo elimina los objetos inalcanzables, la respuesta es: no.
No, no creo que la haya. ¿Pero necesitarías tal cosa?