Variable handling Funzioni
PHP Manual

unset

(PHP 4, PHP 5)

unsetCancella una data variabile

Descrizione

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;
?>

Il precedente esempio visualizzerà:

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";
?>

Il precedente esempio visualizzerà:

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();
?>

Il precedente esempio visualizzerà:

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

Elenco dei parametri

var

La variabile da distruggere.

...

Un'altra variabile ...

Valori restituiti

Nessun valore viene restituito.

Esempi

Example #1 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);
?>

Example #2 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);
?>

Il precedente esempio visualizzerà:

NULL
string(6) "Felipe"

Note

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

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.

Vedere anche:


Variable handling Funzioni
PHP Manual