Maison  >  Article  >  développement back-end  >  Explication détaillée de la façon d'utiliser la fonction unset() pour détruire une ou plusieurs instances de variable

Explication détaillée de la façon d'utiliser la fonction unset() pour détruire une ou plusieurs instances de variable

伊谢尔伦
伊谢尔伦original
2017-06-24 09:38:507961parcourir

La fonction

unset est une fonction fournie avec PHP pour détruire les variables. Nous avons également introduit la méthode d'utilisation d'unset pour détruire les variables statiques et les variables globales. en détruisant les variables du tableau, regardons les exemples ci-dessous.

Exemple 1. unset() Exemple

<?php
// 销毁单个变量
unset ($foo);
// 销毁单个数组元素
unset ($bar[&#39;quux&#39;]);
// 销毁一个以上的变量
unset ($foo1, $foo2, $foo3);
?>

Le comportement de unset() dans une fonction varie en fonction du type de variable que vous souhaitez détruire.

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

<?php
function destroy_foo() {
global $foo;
unset($foo);
}
$foo = ‘bar’;
destroy_foo();
echo $foo;
?>

L'exemple ci-dessus affichera :

bar

Si dans une fonction unset() une variable passée par une référence, elle sera seules les variables locales sont détruites, tandis que les variables de l'environnement appelant conserveront la même valeur avant d'appeler unset().

<?php
function foo(&$bar) {
unset($bar);
$bar = “blah”;
}
$bar = ‘something’;
echo “$barn”;
foo($bar);
echo “$barn”;
?>

L'exemple ci-dessus affichera :

quelque chose
quelque chose

variable statique unset()
À proprement parler, utilisez unset() pour détruire la statique variables , rompt simplement la référence entre nom de la variable et la valeur de la variable.

Exemple :

<?php
function foo() {
    static $b;
        $a++;
    $b++;
    echo "$a---$bn";
    unset($a,$b);
    var_dump($a);
    var_dump($b);
    echo "######################n";
}
foo();
foo();
foo();
?>

Exécutez cet exemple, résultat :

1---1
NULL
NULL
#######################
1---2
NULL
NULL
#######################
1---3
NULL
NULL
#######################

la variable globale unset()
est la même que la variable statique unset(), if in Si vous supprimez() une variable globale dans une fonction, seule la variable locale sera détruite et les variables de l'environnement appelant conserveront la même valeur avant d'appeler unset().

Essayez de comparer les deux exemples suivants :

<?php
function destroy_foo() {
    global $foo;
    unset($foo);
}
$foo = &#39;bar&#39;;
destroy_foo();
echo $foo;
?>
<?php
function destroy_foo() {
    global $foo;
    unset($GLOBALS[&#39;foo&#39;]);
}
$foo = &#39;bar&#39;;
destroy_foo();
echo $foo;
?>

L'exécution du premier exemple affichera : bar , tandis que le deuxième exemple ne produira rien.

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