Maison >développement back-end >Problème PHP >Quelle est la méthode pour détruire des objets en PHP
Méthodes pour détruire des objets en PHP : 1. Attribuez NULL à la variable objet, la syntaxe est "$obj = null;" 2. Utilisez la fonction unset() pour détruire l'objet, la syntaxe est "unset($obj) );".
L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 7.1, ordinateur DELL G3
Comment détruire des objets en PHP
Méthode 1 : Attribuer NULL à la variable objet
Lorsque l'objet Il sera détruit lorsqu'il n'est pas référencé, vous pouvez donc lui attribuer NULL
Exemple : Il existe un tel objet :
<?php header("Content-type:text/html;charset=utf-8"); class Human { public $name = '张三'; public $gender = null; public function __destruct() { echo '走了!<br />'; } } $obj = new Human(); var_dump($obj); ?>
Résultat de sortie :
Attribuez NULL à la variable objet $obj , détruisez l'objet
$obj = null; var_dump($obj);
Résultat de sortie :
Méthode 2 : Utilisez la fonction unset() pour détruire l'objet
Exemple 1 :
<?php class Human { public $name = '张三'; public $gender = null; public function __destruct() { echo '走了!<br />'; } } $a = new Human(); $b = $c = $d = $a; unset($a); echo $b->name; //输出张三 echo '<hr />'; //先输出换行线再输出走了 析构函数是在线上触发还是线下触发? ?>
Réponse :
$b = $c = $d = $a;
Par défaut, quatre variables passent par référence pointez vers la même mémoire, l'objet est toujours en cours de désactivation. Les trois autres variables sont utilisées, donc l'objet n'est pas détruit, donc le destructeur est déclenché hors ligne (la mémoire est automatiquement libérée après l'exécution du code)
Exemple 2 :
<?php class Human { public $name = '张三'; public $gender = null; public function __destruct() { echo '走了!<br />'; } } $e = $f = $g = new Human(); unset($e); unset($f); unset($g); echo '<hr />'; //同样的问题: 析构函数是在线上触发还是线下触发? ?>
Avant que la mémoire ne soit automatiquement libérée après l'exécution du code Puisque l'objet n'est plus référencé par aucune variable, la mémoire est automatiquement libérée....La réponse est de le déclencher en ligne
Apprentissage recommandé : "Tutoriel vidéo PHP"
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!