unset

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

unsetunset() destruye una variable

Descripción

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 devuelve 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: Puesto que esto es una construcción del lenguaje y no una función, no puede ser llamada usando funciones variables.

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