(PHP 4, PHP 5, PHP 7)
unset — Destrói a variável especificada
unset() destrói a variável especificada.
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 irá imprimir:
bar
Se você quer usar unset() na variável global dentro de uma função, você pode usar o array $GLOBALS, veja então:
<?php
function foo()
{
unset($GLOBALS['bar']);
}
$bar = "something";
foo();
?>
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 irá imprimir:
something something
Se for utilizado unset() com uma variável estática dentro de uma função, unset() destrói a variável somente no contexto do resto da função. Chamada seguintes irão restaurar o valor anterior da variável. todas as suas referências.
<?php
function foo()
{
static $bar;
$bar++;
echo "Before unset: $bar, ";
unset($bar);
$bar = 23;
echo "after unset: $bar\n";
}
foo();
foo();
foo();
?>
O exemplo acima irá imprimir:
Before unset: 1, after unset: 23 Before unset: 2, after unset: 23 Before unset: 3, after unset: 23
var
The variable to be unset.
var
Another variable ..
...
Não há valor retornado.
Versão | Descrição |
---|---|
4.0.0 | unset() tornou-se uma expressão. (No PHP 3, unset() sempre retorna 1). |
Exemplo #1 Exemplo da unset()
<?php
// destroy a single variable
unset($foo);
// destroy a single element of an array
unset($bar['quux']);
// destroy more than one variable
unset($foo1, $foo2, $foo3);
?>
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
Nota:
É possível usar unset em propriedades de objetos visíveis no contexto atual.
Nota:
Não é possível usar unset em $this dentro de um método de objeto desde o PHP 5.