(PHP 4, PHP 5, PHP 7)
unset — Elimină o variabilă dată
unset() distruge variabila specificată.
Comportamentul unset() în interiorul unei funcții poate varia în dependență de tipul variabilei pe care încercați să o distrugeți.
Dacă este aplicat unset() asupra unei variabile globale în interiorul unei funcții, numai variabila locală va fi distrusă. Variabila din mediul apelant își va păstra aceeași valoare ca și până la apelul unset().
<?php
function destroy_foo()
{
global $foo;
unset($foo);
}
$foo = 'bar';
destroy_foo();
echo $foo;
?>
Exemplul de mai sus va afișa:
bar
Dacă doriți să aplicați unset() asupra unei variabile globale din interiorul unei funcții, puteți utiliza tabloul $GLOBALS pentru aceasta:
<?php
function foo()
{
unset($GLOBALS['bar']);
}
$bar = "ceva";
foo();
?>
Dacă se aplică unset() în interiorul unei funcții asupra unei variabile care este transmisă PRIN REFERINȚĂ, numai variabila locală va fi distrusă. Variabila din mediul apelant își va păstra aceeași valoare ca și până la apelul unset().
<?php
function foo(&$bar)
{
unset($bar);
$bar = "blah";
}
$bar = 'ceva';
echo "$bar\n";
foo($bar);
echo "$bar\n";
?>
Exemplul de mai sus va afișa:
ceva ceva
Dacă se aplică unset() asupra unei variabile statice în interiorul unei funcții, unset() distruge variabila numai în contextul restului funcției. Apelurile următoare vor restabili valoarea precedentă a variabilei.
<?php
function foo()
{
static $bar;
$bar++;
echo "Înainte de unset: $bar, ";
unset($bar);
$bar = 23;
echo "după unset: $bar\n";
}
foo();
foo();
foo();
?>
Exemplul de mai sus va afișa:
Înainte de unset: 1, după unset: 23 Înainte de unset: 2, după unset: 23 Înainte de unset: 3, după unset: 23
var
Variabila ce va fi eliminată.
...
O altă variabilă ...
Nu este întoarsă nici o valoare.
Example #1 Exemplu unset()
<?php
// distruge o singură variabilă
unset($foo);
// distruge un singur element din tablou
unset($bar['quux']);
// distruge mai multe variabile
unset($foo1, $foo2, $foo3);
?>
Example #2 Utilizarea modificatorului (unset)
Utilizarea modificatorului (unset) este deseori confundată cu funcția unset(). Modificarea cu ajutorul (unset) servește doar pentru transformarea într-un tip NULL, pentru a asigura completitudinea. El nu modifică variabla căreia îi modifică tipul.
<?php
$name = 'Felipe';
var_dump((unset) $name);
var_dump($name);
?>
Exemplul de mai sus va afișa:
NULL string(6) "Felipe"
Notă: Deoarece aceasta este o construcție a limbajului și nu o funcție, ea nu poate fi apelată utilizând funcții de operare cu variabile .
Notă:
Este posibil de a elimina chiar și proprietăți ale obiectelor vizibile în contextul curent.
Notă:
Nu este posibil de a elimina $this în interiorul unei metode a unui obiect începând cu PHP 5.
Notă:
La utilizarea unset() asupra proprietăților inaccesibile ale obiectelor, va fi apelată metoda de supraîncărcare __unset(), dacă este declarată.