Quand le destructeur php est-il appelé ?

(*-*)浩
Libérer: 2023-02-24 06:10:01
original
4390 Les gens l'ont consulté

Quand le destructeur php est-il appelé ?

Quand le destructeur est-il appelé

Le destructeur est appelé dans les 3 situations suivantes :

Lorsque le cycle de vie de l'objet se termine et est détruit ;

Appelez activement delete ; (Apprentissage recommandé : Programmation PHP de l'entrée à la maîtrise)

L'objet i est en tant que membre de l'objet o, lorsque le destructeur de o est appelé, le destructeur de l'objet i est également appelé.

PHP 5 a introduit le concept de destructeurs, similaire à d'autres langages orientés objet tels que le C++. Un destructeur est exécuté lorsque toutes les références à un objet sont supprimées ou lorsque l'objet est explicitement détruit.

<?php
class MyDestructableClass {
   function __construct() {
       print "In constructor\n";
       $this->name = "MyDestructableClass";
   }

   function __destruct() {
       print "Destroying " . $this->name . "\n";
   }
}

$obj = new MyDestructableClass();
?>
Copier après la connexion

Comme le constructeur, le destructeur de la classe parent ne sera pas appelé secrètement par le moteur. Pour exécuter le destructeur de la classe parent, parent::__destruct() doit être explicitement appelé dans le corps du destructeur de la classe enfant. De plus, tout comme le constructeur, la sous-classe héritera de la classe parent si elle ne définit pas de destructeur.

Le destructeur est appelé même lorsque exit() est utilisé pour terminer le script. L’appel de exit() dans le destructeur annulera le reste de l’opération d’arrêt.

Remarque :

Le destructeur est appelé à la fermeture du script, après que tous les en-têtes HTTP ont été envoyés. Il est possible que le répertoire de travail lorsque le script est fermé soit différent de celui lorsqu'il se trouve dans un SAPI (comme Apache).

Remarque :

Tenter de lancer une exception dans le destructeur (qui est appelé à la fin du script) entraînera une erreur fatale.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
php
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal