# unset

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

unset — Destruye una o más variables especificadas

### Descripción

unset(mixed `$var`, mixed `$...` = ?): void

unset() destruye las variables especificadas.

El comportamiento de unset() dentro de una función puede variar dependiendo de qué tipo de variable que se está tratando de destruir.

Si una variable global es unset() dentro de una función, solo la variable local es destruida. La variable en el entorno de la llamada mantendrá el mismo valor anterior a la llamada a unset().

`<?php
function destruir_foo()
{
global $foo;
unset($foo);
}
$foo = 'bar';
destruir_foo();
echo $foo;
?>`

El resultado del ejemplo sería:

    bar

Si desea aplicar unset() a una variable global dentro de una función, puede usar la matriz $GLOBALS para hacerlo:

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

Si una variable que se pasa POR REFERENCIA es unset() dentro de una función, sólo la variable local es destruida. La variable en el entorno de la llamada mantendrá el mismo valor anterior a la llamada a unset()

`<?php
function foo(&$bar)
{
unset($bar);
$bar = "blah";
}
$bar = 'algo';
echo "$bar\n";
foo($bar);
echo "$bar\n";
?>`

El resultado del ejemplo sería:

    algo
    algo

Si una variable estática es unset() dentro de una función, unset() destruye la variable únicamente en el contexto del resto de una función. Las llamadas siguientes recuperarán el valor previo de una variable.

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

El resultado del ejemplo sería:

    Antes de unset: 1, después de unset: 23
    Antes de unset: 2, después de unset: 23
    Antes de unset: 3, después de unset: 23

### Parámetros

`var`

  La variable a ser destruida.

`...`

  Otra variable...

### Valores devueltos

No devuelve ningún valor.

### Ejemplos

Ejemplo #1 Ejemplo de unset()

`<?php
// destruir una sola variable
unset($foo);
// destruir un solo elemento de una matriz
unset($bar['quux']);
// destruir más de una variable
unset($foo1, $foo2, $foo3);
?>`

Ejemplo #2 Usando el forzado a `(unset)`

El forzado a `(unset)` a menudo se confunde con la función unset(). El forzado `(unset)` sólo sirve como una conversión de tipo `NULL`. Esto no altera la variable que se está forzando.

`<?php
$name = 'Felipe';
var_dump((unset) $name);
var_dump($name);
?>`

El resultado del ejemplo sería:

    NULL
    string(6) "Felipe"

### Notas

> Nota: Puesto que esto es una construcción del lenguaje y no una función, no puede ser llamada usando funciones variables.

> Nota:

> Es posible remover incluso propiedades de objetos visibles en el contexto actual.

> Nota:

> No es posible remover `$this` dentro de un método de objeto a partir de PHP 5.

> Nota:

> Cuando se utiliza unset() sobre las propiedades de objetos inaccesibles, el método de sobrecarga __unset() será llamado, si se declara.

### Ver también

- isset() - Determina si una variable está definida y no es null
- empty() - Determina si una variable está vacía
- __unset()
- array_splice() - Elimina una porción del array y la reemplaza con otra cosa