unset

(PHP 3, PHP 4, PHP 5)

unset -- Remover una variable dada

Descripción

void unset ( mixed var [, mixed var [, mixed ...]] )

unset() destruye las variables especificadas. Note que en PHP 3, unset() siempré devolverá TRUE (en realidad, el valor entero 1). En PHP 4, sin embargo, unset() no es una función verdadera: es una sentencia. Como tal, no devuelve valor alguno, e intentar tomar el valor de unset() resulta en un error de intérprete.

Ejemplo 1. Ejemplo de unset()

<?php
// destruir una variable sencilla
unset($foo);

// destruir un elemento de una matriz
unset($bar['quux']);

// destruir mas de una variable
unset($foo1, $foo2, $foo3);
?>

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

El comportamiento de unset() al interior de una función puede variar dependiendo del tipo de variable que intenta destruir.

Si se aplica unset() sobre una variable global al interior de una función, solo la variable local es destruida. La variable en el entorno de la llamada retendrá el mismo valor que antes que que se llamara unset().

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

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

El resultado del ejemplo seria:

bar

Si desea aplicar unset() sobre una variable global al interior de una función, puede usar la matriz $GLOBALS para este propósito:

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

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

Si se aplica unset() sobre una variable que es PASADA POR REFERENCIA al interior de una función, solo la variable local es destruida. La variable en el entorno de la llamada retendrá el mismo valor que antes de que unset() fuera llamada.

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

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

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

El resultado del ejemplo seria:

algo
algo

Si se aplica unset() sobre una variable estática al interior 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
"despues de unset: $bar\n";
}

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

El resultado del ejemplo seria:

Antes de unset: 1, despues de unset: 23
Antes de unset: 2, despues de unset: 23
Antes de unset: 3, despues de unset: 23

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

Vea también isset(), empty(), y array_splice().