PHP: Distruggi un oggetto dall'interno dell'oggetto?
Domanda
Esiste un modo in PHP per distruggere un oggetto all'interno di quello stesso oggetto?
Soluzione
C'è un modo per autodistruggere un oggetto:
Usa l'array $ GLOBALS
per trovare la tua istanza al suo interno, quindi usa unset ()
. Ricorda che unset ()
non chiama automaticamente il metodo magico __destruct ()
continuamente ...
C'è una tale nota in questo modo (vedere la documentazione unset ()
) nella documentazione PHP, ma non spiega esattamente quando unset ()
non chiama il metodo __destruct ()
.
E ho avuto questo comportamento specifico:
Faccio un:
unset($myInstance);
$myInstance = clone $otherInstance;
E il __constructor
viene chiamato per primo, quindi __destruct ()
. Oppure vorrei che __destruct ()
fosse chiamato per primo perché unset ()
è prima del clone ...
Ora mi sono bloccato con quello ...
Nicolas.
Altri suggerimenti
Se viene chiamato un metodo nel contesto dell'oggetto, deve esserci almeno un riferimento a quell'oggetto. E poiché php rimuove solo oggetti non raggiungibili la risposta è: no.
No, non credo ci sia. Ma avresti bisogno di una cosa del genere?