unset

Cancella una data variabile

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

unset distrugge la variabile specificata.

Il comportamento di unset all'interno di una funzione può dipendere molto dal tipo di variabile che si intende distruggere.

Se una variabile globale è unset all'interno di una funzione, solo la variabile locale viene distrutta. La variabile nell'ambiente chiamante conserverà lo stesso valore che aveva prima che unset venisse chiamata. <?php function destroy_foo() { global $foo; unset($foo); } $foo = 'bar'; destroy_foo(); echo $foo; ?>

bar

Per unset una variabile globale all'interno di una funzione, viene usato l'array $GLOBALS: <?php function foo() { unset($GLOBALS['bar']); } $bar = "something"; foo(); ?>

Se una variabile che è PASSATA PER RIFERIMENTO viene unset all'interno di una funzione, solo la variabile locale viene distrutta. La variabile nell'ambiente chiamante conserverà lo stesso valore che aveva prima che unset venisse chiamata. <?php function foo(&$bar) { unset($bar); $bar = "blah"; } $bar = 'something'; echo "$bar\n"; foo($bar); echo "$bar\n"; ?>

something something

Se una variabile statica viene unset all'interno di una funzione, unset distrugge la variabile solo nel contesto del resto della funzione. Le chiamate successive ripristineranno il precedente valore di una variabile. <?php function foo() { static $bar; $bar++; echo "Before unset: $bar, "; unset($bar); $bar = 23; echo "after unset: $bar\n"; } foo(); foo(); foo(); ?>

Before unset: 1, after unset: 23 Before unset: 2, after unset: 23 Before unset: 3, after unset: 23

var La variabile da distruggere. ... Un'altra variabile ...

Return void

Esempio di unset <?php // distrugge una singola variabile unset($foo); // distrugge un singolo elemento dell'array unset($bar['quux']); // distrugge più di una variabile unset($foo1, $foo2, $foo3); ?> Uso del casting di (unset) Il casting di (unset) è spesso confuso con la funzione unset. Il casting di (unset) serve solo come un casting del tipo NULL, per completezza. Esso non altera la variabile a cui sta facendo il casting. <?php $name = 'Felipe'; var_dump((unset) $name); var_dump($name); ?> Example outputs NULL string(6) "Felipe"

Nota: È possibile distruggere anche proprietà degli oggetti visibili nel contesto corrente.
Nota: Non è possibile distruggere $this all'interno di un metodo di un oggetto da PHP 5.
Nota: Quando viene usato unset su proprietà di oggetti inaccessibili, il metodo overloading __unset() verrà richiamato, se dichiarato.

isset empty __unset() array_splice