Un distruttore di classe in PHP è prevedibile? Quando viene chiamato il distruttore?Il distruttore in PHP è prevedibile?
Come in molte lingue, verrà chiamato un distruttore di classe non appena l'oggetto esce dall'ambito di applicazione?
Un distruttore di classe in PHP è prevedibile? Quando viene chiamato il distruttore?Il distruttore in PHP è prevedibile?
Come in molte lingue, verrà chiamato un distruttore di classe non appena l'oggetto esce dall'ambito di applicazione?
PHP 5 introduce un concetto distruttore simile a quella di altre linguaggi orientati agli oggetti, come C++. Il metodo distruttore sarà chiamato non appena tutti i riferimenti a un oggetto specifico vengono rimossi o quando l'oggetto viene eliminato in modo esplicito o in qualsiasi ordine nella sequenza di arresto.
Si chiama quando la prima di queste condizioni sono soddisfatte:
In breve, non si deve fare affidamento sul fatto che venga sempre chiamato, perché lo script potrebbe non terminare in modo pulito.
Infatti, come tutti i riferimenti sono andati, non necessariamente se una variabile esce dall'ambito. – Wrikken
questo include anche quando lo script stesso termina l'esecuzione. –
Ma come posso chiamare i distruttori nel caso in cui lo script non venga completato in modo pulito? In Windows, per un esempio, quando si uccide un processo, tutte le risorse conteggiate di nuovo vengono automaticamente decrementate sullo stesso conteggio incrementato prima dell'incidente. Ho bisogno di inviare un pacchetto per la pulizia della sessione su un altro server anche in caso di eccezione. –