Forum und email

unset

(PHP 4, PHP 5)

unset — Şterge variabilele date

Descriere

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

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;
?>
Exemplul de mai sus va afişa:
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";
?>
Exemplul de mai sus va afişa:
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();
?>
Exemplul de mai sus va afişa:
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();
?>

Mai consultaţi isset() şi empty().