Maison >développement back-end >Problème PHP >Quelle est la méthode pour détruire des objets en PHP

Quelle est la méthode pour détruire des objets en PHP

青灯夜游
青灯夜游original
2021-09-13 18:01:222916parcourir

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) );".

Quelle est la méthode pour détruire des objets en PHP

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 = &#39;张三&#39;;   
  public $gender = null;   
  public function __destruct() {   
      echo &#39;走了!<br />&#39;;   
  }   
}   
$obj = new Human();  
var_dump($obj);
?>

Résultat de sortie :

Quelle est la méthode pour détruire des objets en PHP

Attribuez NULL à la variable objet $obj , détruisez l'objet

$obj = null;
var_dump($obj);

Résultat de sortie :

Quelle est la méthode pour détruire des objets en PHP

Méthode 2 : Utilisez la fonction unset() pour détruire l'objet

Exemple 1 :

<?php
class Human {   
  public $name = &#39;张三&#39;;   
  public $gender = null;   
  public function __destruct() {   
      echo &#39;走了!<br />&#39;;   
  }   
}   
$a = new Human();   
$b = $c = $d = $a;  
unset($a);    
echo $b->name; //输出张三
echo &#39;<hr />&#39;; //先输出换行线再输出走了    析构函数是在线上触发还是线下触发?
?>

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)

Quelle est la méthode pour détruire des objets en PHP

Exemple 2 :

<?php
class Human { 
  public $name = &#39;张三&#39;; 
  public $gender = null; 
   
  public function __destruct() { 
      echo &#39;走了!<br />&#39;; 
  } 
} 
$e = $f = $g = new Human(); 
unset($e); 
unset($f); 
unset($g); 
echo &#39;<hr />&#39;; //同样的问题: 析构函数是在线上触发还是线下触发?
?>

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

Quelle est la méthode pour détruire des objets en PHP

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!

Déclaration:
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