unset
Cancella una data variabile
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"
$this all'interno di un metodo
di un oggetto da PHP 5.
isset empty __unset() array_splice