php Méthode Destructor Dans quelles circonstances la destruct est-elle exécutée ? Dans tous les cas, est-elle rencontrée ?>le caractère de fin php est également exécuté
Destructor Sera exécuté lorsque toutes les références à un certain objet sont supprimées ou lorsque l'objet est explicitement détruit
sera exécuté avant que l'objet ne soit détruit Bar ?
Selon le manuel officiel, le destructeur sera exécuté lorsque toutes les références à un objet seront supprimées ou lorsque l'objet sera explicitement détruit. La démonstration du code est la suivante
class sf{ public function destruct() { echo METHOD . PHP_EOL; } } $c1 = new sf; $c2 = $c1;echo 'unset $c2' . PHP_EOL;unset($c2);echo 'unset $c1' . PHP_EOL;unset($c1);// ----$c1 = new sf; $c2 = $c1;echo 'null $c2' . PHP_EOL; $c2 = null;echo 'null $c1' . PHP_EOL; $c1 = null;// ----$c1 = new sf; $c2 = $c1;echo '123 $c2' . PHP_EOL; $c2 = 123;echo '456 $c1' . PHP_EOL; $c1 = 456;echo 'the end' . PHP_EOL;
Les résultats d'exécution sont les suivants
unset $c2unset $c1 sf::destructnull $c2null $c1 sf::destruct123 $c2456 $c1 sf::destruct the end
Le destructeur sera exécuté lorsque toutes les références à un objet sont supprimées ou lorsque l'objet est explicitement détruit .
De manière générale, php détruira la référence à la fin du script (non définie) et s'exécutera avant la fin du script.
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!