unset destruye una variable

# unset

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

unset — unset() destruye una variable

### Descripción

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

unset() destruye la o las variables cuyo nombre ha sido pasado como argumento `var`.

El comportamiento de unset() dentro de una función puede variar según el tipo de variable que se desee destruir.

Si una variable global es destruida con unset() desde una función, solo la variable local será destruida. La variable global mantendrá el valor adquirido antes de la llamada a unset().

Ejemplo #1 Utilización de unset()

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

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

Para destruir una variable global dentro de una función, se puede utilizar el array $GLOBALS:

Ejemplo #2 unset() una variable global

    <?php
    function foo()
    {
        unset($GLOBALS['bar']);
    }

    $bar = "truc";
    foo();
    ?>

Si una variable que es pasada por referencia es destruida dentro de una función, solo la variable local será destruida. La variable global conservará el mismo valor que tenía antes de la llamada a unset().

Ejemplo #3 unset() con referencia

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

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

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

Si una variable estática es destruida dentro de una función, unset() destruirá la variable solo en el contexto del resto de la función. Las llamadas siguientes restaurarán el valor anterior de la variable.

Ejemplo #4 unset() con variable estática

    <?php
    function foo()
    {
        static $bar;
        $bar++;
        echo "Antes de unset: $bar, ";
        unset($bar);
        $bar = 23;
        echo "después de unset: $bar\n";
    }

    foo();
    foo();
    foo();
    ?>

### Parámetros

`var`

  La variable a destruir.

`vars`

  Variables adicionales.

### Valores devueltos

No se retorna ningún valor.

### Ejemplos

Ejemplo #5 Ejemplo con unset()

    <?php
    // Destrucción de una sola variable
    unset($foo);

    // Destrucción de un elemento de array
    unset($bar['quux']);

    // Destrucción de múltiples variables
    unset($foo1, $foo2, $foo3);
    ?>

### Notas

> Nota: Como esto es una estructura del lenguaje, y no una función, no es posible llamarla con las funciones variables o argumentos nombrados.

> Nota:

> Es posible destruir cualquier propiedad visible en el contexto actual.

> Si está declarado, __get() es llamado al acceder a una propiedad no definida, y __set() es llamado al definir una propiedad no definida.

> Nota:

> No es posible destruir la variable especial `$this` dentro de un método de un objeto.

> Nota:

> Al utilizar esta función en propiedades de objeto inaccesibles, el método mágico __unset será llamado, si existe.

### Ver también

- isset() - Determina si una variable está declarada y es diferente de null
- __unset()
- empty() - Determina si una variable está vacía
- array_splice() - Elimina y reemplaza una porción de array
- (unset) casting

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