Manuale PHP
Indietro |  | Avanti

# unset

(PHP 3, PHP 4, PHP 5)

unset -- Cancella una data variabile

## Descrizione

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

unset() distrugge la variabile specificata. Occorre notare che in PHP 3 la funzione unset() restituiva sempre `TRUE` (in realtà era il valore 1). In PHP 4, invece, la funzione unset() non è più una vera funzione, ora è una istruzione. In questa veste non ritorna alcun valore, e cercare di ottenere un valore dalla funzione unset() produce un errore di parsing.

Esempio 1. Esempio di unset()

`<?php // Distrugge una singola variabile unset($foo); // distrugge un singolo elemento di un array unset($bar['quux']); // distrugge più di una variabile unset($foo1, $foo2, $foo3); ?>`

Il comportamento di unset() all'interno di una funzione può variare in funzione del tipo di variabile che si intende distruggere.

Se si applica unset() ad una variabile globale all'interno di una funzione, sarà distrutta solo la variabile locale. Nell'ambiente chiamante, la variabile manterrà il medesimo valore che aveva prima dell'uso di unset().

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

Il precedente esempio visualizzerà:

    bar

Nel caso di una variabile PASSATA PER RIFERIMENTO ad una funzione, l'uso della funzione unset() distrugge solo la copia locale della variabile. Nell'ambiente chiamante, la variabile manterrà il medesimo valore che aveva prima dell'uso di unset().

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

Il precedente esempio visualizzerà:

    something
    something

Se si usa unset() su una variabile statica all'interno di una funzione, unset() cancella la variabile e tutti i suoi riferimenti.

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

Il precedente esempio visualizzerà:

    1
    2
    3

Se si desidera cancellare una variabile globale dall'interno di una funzione, occorre usare unset() sull'array $GLOBALS nel seguente modo:

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

> Nota: Poichè questo è un costrutto del linguaggio e non una funzione, non può essere chiamato con le variabili funzione

Vedere anche isset() e empty().

Indietro | Partenza | Avanti
unserialize | Risali | var_dump