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

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 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 y todas sus referencias.

<?php
function foo()
{
    static
$a;
    
$a++;
    echo
"$a\n";
    unset(
$a);
}

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

El resultado del ejemplo seria:

1
2
3

Si desea remover una variable global desde el interior de una función, puede usar la matriz $GLOBALS para tal efecto:

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

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

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().

Hosting by: hurra.com
Generated: 2007-01-26 18:01:08