unset
(PHP 4, PHP 5)
unset — Şterge variabilele date
Descriere
Notă: unset() este o construcţie de limbaj.
unset() distruge variabilele specificate. de notat că în PHP 3, unset() returnează întotdeauna TRUE (de fapt valoarea întreagă 1). În PHP 4, unset() nu mai este o funcţie, ci o instrucţiune. De aceea, încercarea de a atribui unei variabile valoarea returnată de unset() se va solda cu eroare gramaticală (parse error).
Example#1 Exemplu pentru unset()
<?php
// distruge o singură variabilă
unset ($foo);
// distruge un singur element al unui tablou
unset ($bar['quux']);
// distruge mai multe variabile
unset ($foo1, $foo2, $foo3);
?>
Comportamentul unset() în interiorul unei funcţii poate să varieze în funcţie de ce anume se doreşte a fi distrus.
Dacă se aplică unset() pe o variabilă globală în interiorul unei funcţii, doar variabila locală va fi ştearsă. Valoarea variabilei globale va fi aceeaşi după ce iese din mediul funcţiei.
<?php
function destroy_foo() {
global $foo;
unset($foo);
}
$foo = 'bar';
destroy_foo();
echo $foo;
?>
bar
De asemenea, şi dacă o variabilă este transmisă prin referinţă, va fi distrusă doar variabila din interiorul funcţiei.
<?php
function foo(&$bar) {
unset($bar);
$bar = "blah";
}
$bar = 'something';
echo "$bar\n";
foo($bar);
echo "$bar\n";
?>
something something
Dacă o variabilă statică este distrusă în interiorul unei funcţii, vor fi distruse toate variabilele şi referinţele lor.
<?php
function foo() {
static $a;
$a++;
echo "$a\n";
unset($a);
}
foo();
foo();
foo();
?>
1 2 3
Dacă doriţi să distrugeţi o variabilă globală în interiorul unei funcţii, puteţi folosi tabloul $GLOBALS :
<?php
function foo() {
unset($GLOBALS['bar']);
}
$bar = "something";
foo();
?>