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.
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().
O exemplo acima deve mostrar: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 |
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.
O exemplo acima deve mostrar: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:
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().