Maison > développement back-end > Problème PHP > Comment utiliser la fonction pour détruire des variables en php

Comment utiliser la fonction pour détruire des variables en php

醉折花枝作酒筹
Libérer: 2023-03-11 22:18:02
original
1724 Les gens l'ont consulté

Dans l'article précédent, nous avons découvert la méthode de désérialisation d'objets ou de tableaux. Si vous en avez besoin, veuillez lire "Comment désérialiser des tableaux et des objets en PHP". Cette fois, nous allons vous présenter la méthode d'utilisation des fonctions pour détruire des variables. Vous pouvez vous y référer si nécessaire.

Avant de commencer l’article, voyons d’abord ce qu’est la destruction de variables.

La destruction de variables ou d'objets PHP peut être divisée en destruction explicite et destruction implicite :

1. Destruction explicite, lorsque l'objet n'est pas référencé, il sera détruit, nous pouvons donc le supprimer ou lui attribuer NULL

;

2. Destruction implicite. PHP est un langage de script Lorsque la dernière ligne de code est exécutée, toute la mémoire appliquée doit être libérée.

Ce que nous allons présenter aujourd’hui n’est pas une destruction explicite.

Jetons d’abord un coup d’œil à un petit châtaignier.

<?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);
$d=null;


echo &#39;<hr />&#39;;
var_dump($a);
echo &#39;<hr />&#39;;
var_dump($b);
echo &#39;<hr />&#39;;
var_dump($c);
echo &#39;<hr />&#39;;
var_dump($d);
?>
Copier après la connexion

Le résultat est

Comment utiliser la fonction pour détruire des variables en php

Sans plus tard, jetons un œil à cette fonction. La fonction

unset() est utilisée pour détruire la variable donnée.

Donc, unset() ne détruit pas réellement la valeur mémoire dans la variable, il coupe simplement la relation entre la variable et la mémoire et supprime le nom de la variable, mais la mémoire ne sera pas libérée tant qu'elle est toujours référencée ; et En PHP, les objets sont passés par valeur par référence par défaut, ce qui explique aussi pourquoi Human类中,$a被unset()了,但是$b =$c = $d a aussi une valeur.

Jetons un œil à la syntaxe de cette fonction.

void unset (要销毁的变量)
Copier après la connexion

Si unset() est une variable globale dans une fonction, seule la variable locale est détruite et les variables de l'environnement appelant garderont la même valeur qu'avant d'appeler unset().

Si unset() est une variable passée par référence dans une fonction, seule la variable locale est détruite et les variables de l'environnement appelant conserveront la même valeur qu'avant d'appeler unset().

Si unset() est une variable statique dans une fonction, la variable statique sera détruite dans la fonction. Cependant, lorsque cette fonction est à nouveau appelée, la variable statique sera restaurée à la valeur qu'elle avait avant sa dernière destruction.

C'est tout. Si vous voulez savoir autre chose, vous pouvez cliquer ici. → →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!

É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