Description
void
unset ( mixed var [, mixed var [, mixed ...]] )
unset() détruit les variables spécifiées.
Notez qu'en PHP 3, unset() retournait toujours
TRUE (en fait, la valeur entière 1). En PHP, 4 toutefois,
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 1. 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); ?>
|
|
Note :
Il est possible de détruire n'importe quelle propriété visible dans le contexte courant.
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().
Exemple 2. Exemple avec unset() dans un contexte de fonction
<?php function destroy_foo() { global $foo; unset($foo); } $foo = 'bar'; destroy_foo(); echo $foo; ?>
|
L'exemple ci-dessus va afficher : |
Si vous désirez détruire une variable globale à l'intérieur d'une
fonction, vous pouvez utiliser le tableau
$GLOBALS pour le faire :
Exemple 3. Exemple avec unset() avec une variable globale
<?php function foo() { unset($GLOBALS['bar']); }
$bar = "truc"; foo(); ?>
|
|
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 même valeur
qu'elle avait avant l'appel de unset().
Exemple 4. Exemple avec unset() sur une référence
<?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érieur d'une fonction
unset() détruira la variable seulement dans le
contexte du reste de la fonction. Les appels suivants restaureront la
valeur précédente de la variable.
Exemple 5. Exemple avec unset() et une variable statique
<?php function foo() { static $bar; $bar++; echo "Avant unset : $bar, "; unset($bar); $bar = 23; echo "après unset : $bar\n"; } foo(); foo(); foo(); ?>
|
L'exemple ci-dessus va afficher : Avant unset : 1, après unset : 23
Avant unset : 2, après unset : 23
Avant unset : 3, après unset : 23 |
|
Note : Comme ceci est une structure
du langage, et non pas une fonction, il n'est pas possible de l'appeler
avec les variables fonctions.
Voir aussi
array_splice(),
isset() et
empty().