unset(détruit) une variable

# unset

(PHP 4, PHP 5, PHP 7, PHP 8)

unset — unset()(détruit) une variable

### Description

function unset(mixed `$var`, mixed `...$vars`): void

unset() détruit la ou les variables dont le nom a été passé en argument `var`.

Le comportement de unset() à l'intérieur d'une fonction peut varier suivant le type de variable qu'on souhaite détruire.

Si une variable globale est détruite avec unset() depuis une fonction, seule la variable locale sera détruite. La variable globale gardera la valeur acquise avant l'appel à unset().

Exemple #1 Utilisation de unset()

    <?php
    function destroy_foo()
    {
        global $foo;
        unset($foo);
    }

    $foo = 'bar';
    destroy_foo();
    echo $foo;
    ?>

Pour utiliser unset() sur une variable globale à l'intérieur d'une fonction, il est possible d'utiliser le tableau $GLOBALS :

Exemple #2 unset() 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 avec unset() à 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 unset() avec référence

    <?php
    function foo(&$bar)
    {
        unset($bar);
        $bar = "blah";
    }

    $bar = 'truc';
    echo "$bar\n";

    foo($bar);
    echo "$bar\n";
    ?>

Si une variable statique est détruite avec unset() à 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 #4 unset() avec 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();
    ?>

### Liste de paramètres

`var`

  La variable à détruire.

`vars`

  Variables supplémentaires.

### Valeurs de retour

Aucune valeur n'est retournée.

### Exemples

Exemple #5 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);
    ?>

### Notes

> Note: Comme ceci est une structure du langage, et non pas une fonction, il n'est pas possible de l'appeler avec les fonctions variables ou arguments nommés.

> Note:

> Il est possible de détruire n'importe quelle propriété visible dans le contexte courant.

> Si déclaré, __get() est appelé lors de l'accès à une propriété non définie, et __set() est appelé lors de la définition d'une propriété non définie.

> Note:

> Il n'est pas possible de détruire la variable spéciale `$this` à l'intérieur d'une méthode d'un objet.

> Note:

> Lors de l'utilisation de unset() sur des propriétés d'objet inaccessibles, la méthode magique __unset() sera appelée, si elle existe.

### Voir aussi

- isset() - Détermine si une variable est déclarée et est différente de null
- __unset()
- empty() - Détermine si une variable est vide
- array_splice() - Efface et remplace une portion de tableau
- (unset) casting

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open