Forum und email

unset

(PHP 4, PHP 5)

unset — Remover una variable dada

Descripción

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

unset() destruye las variables especificadas.

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 
"después de unset: $bar\n";
}

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

El resultado del ejemplo seria:

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

Lista de parámetros

var

La variable a destruir.

var

Otra variable ..

...

Valores retornados

No value is returned.

Registro de cambios

Versión Descripción
4.0.0 unset() se conviritó en una expresión. (En PHP 3, unset() siempre devolvía 1).

Ejemplos

Example#1 Ejemplo de unset()

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

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

// destruir más de una variable
unset($foo1$foo2$foo3);
?>

Notes

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

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

Note: No es posible remover $this al interior de un método en un objeto a partir de PHP 5.