(PHP 4, PHP 5, PHP 7)
unset — Destruye una variable especificada
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
var
La variable a ser destruida.
...
Otra variable...
No devuelve ningún valor.
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"
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.