Manuel PHP
Précédent |  | Suivant

# unset

(PHP 3, PHP 4, PHP 5 )

unset -- Détruit une variable

## 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). 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); ?>`

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 :

    bar

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 3. 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 :

    truc
    truc

Si une variable statique est détruite à l'intérieure d'une fonction unset() détruira la variable et toutes ses références.

Exemple 4. Exemple avec unset() et une variable statique

`<?php function foo() { static $a; $a++; echo "$a\n"; unset($a); } foo(); foo(); foo(); ?>`

L'exemple ci-dessus va afficher :

    1
    2
    3

Si vous voulez détruire une variable globale, depuis une fonction, vous pouvez utiliser le tableau $globals :

Exemple 5. Exemple avec unset() avec une variable globale

`<?php function foo() { unset($GLOBALS['bar']); } $bar = "truc"; foo(); ?>`

> 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().

Précédent | Sommaire | Suivant
unserialize | Niveau supérieur | var_dump