Manual do PHP
Anterior |  | Próxima

# unset

(PHP 3, PHP 4, PHP 5 )

unset -- Destrói a variável especificada

## Descrição

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

unset() destrói a variável especificada. Lembrando que no PHP 3, unset() sempre retornará `TRUE` (atualmente, o valor inteiro 1). No PHP 4, porém, unset() não é uma função verdadeira: agora é um construtor da linguagem. Como tal, nenhum valor é retornado, se tentar pegar o valor de unset() um erro de sintaxe (parse error) irá acontecer.

Exemplo 1. Exemplo de unset()

`<?php // destrói uma única variável unset ($foo); // destrói um único elemento de uma matriz unset ($bar['quux']); // destrói mais de uma variável unset ($foo1, $foo2, $foo3); ?>`

O comportamento de unset() pode variar dentro de uma função dependendo do tipo de variável que você está tentando destruir.

Se utilizar unset() em uma variável global dentro de uma função, somente a variável local será destruída. A variável no ambiente que foi chamada terá o mesmo valor como antes da execução de unset().

`<?php function destroy_foo() { global $foo; unset($foo); } $foo = 'bar'; destroy_foo(); echo $foo; ?>`

O exemplo acima deve mostrar:

    bar

Se a variável for passada por referencia e a função unset() estiver dentro de uma função, apenas a variável local será destruída. A variável no ambiente que chamou a função onde esta unset() irá manter o mesmo valor de antes da utilização de unset().

`<?php function foo(&$bar) { unset($bar); $bar = "blah"; } $bar = 'something'; echo "$bar\n"; foo($bar); echo "$bar\n"; ?>`

O exemplo acima deve mostrar:

    something
    something

Se for utilizado unset() com uma variável estática dentro de uma função, unset() destrói a variável e todas as suas referencias.

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

O exemplo acima deve mostrar:

    1
    2
    3

Se você quiser usar a função unset() com uma variável global dentro de uma função, você poderá usar a matriz $GLOBALS para faze-lo:

`<?php function foo() { unset($GLOBALS['bar']); } $bar = "something"; foo(); ?>`

> Nota: Este é um construtor de linguagem e não uma função, por isso não é possível chamá-lo através de funções variáveis

Veja mais em isset(), empty() e array_splice().

Anterior | Principal | Próxima
unserialize | Acima | var_dump