6.98.27 unset[ Exemples avec unset ] Description
void unset(mixed var ,[mixed var ],[... ])
unset détruit les variables var.
Notez qu'en PHP 3, unset retournait toujours
TRUE (en fait, la valeur entière 1).
unset n'est plus une véritable fonction :
c'est une structure du langage, ce qui fait qu'elle ne retourne
pas de valeur. Lire la valeur retournée par unset
(dans une variable, par exemple), retourne une erreur d'analyse.
Exemple avec unset |
<?php // Destruction d'une seule variable unset ($foo); // Destruction d'un élément de tableau unset ($bar['quux']); // Destruction de plusieurs variables unset ($foo1, $foo2, $foo3); ?>
|
Le comportement de unset à l'intérieur d'une
fonction peut varier suivant le type de variable que vous voulez
détruire.
Si une variable globale est détruite avec unset
depuis une fonction, seule la variable locale sera détruite. Le
variable globale gardera la valeur acquise avant l'appel à
unset.
|
<?php function destroy_foo() { global $foo; unset($foo); } $foo = 'bar'; destroy_foo(); echo $foo; ?>
|
L'exemple ci dessus affichera :
Si une variable qui est passée par référence est détruite à
l'intérieur d'une fonction, seule la variable locale sera
détruite. La variable globale conservera la dernière valeur
qu'elle avait avant l'appel de unset.
|
<?php function foo(&$bar) { unset($bar); $bar = "bla"; } $bar = 'truc'; echo "$bar\n"; foo($bar); echo "$bar\n"; ?>
|
L'exemple ci dessus va afficher :
Si une variable statique est détruite à l'intérieure d'une fonction
unset détruira la référence à la variable
statique, plutôt que la variable statique elle même.
|
<?php function foo() { static $a; $a++; echo "$a\n"; unset($a); } foo(); foo(); foo(); ?>
|
L'affichage du script ci-dessus donnera :
Si vous voulez détruire une variable globale, depuis une
fonction, vous pouvez utiliser le tableau
$GLOBALS :
|
<?php function foo() { unset($GLOBALS['bar']); } $bar = "truc"; foo(); ?>
|
Note |
unset est une structure du langage et non pas une
fonction.
|
Voir aussi
isset et
empty.
|