Forum und email

unset

(PHP 4, PHP 5)

unset — Verwijder een gegeven variabele

Beschrijving

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

Note: unset() is een language construct.

unset() vernietigd de gespecificeerde variabelen. Merk op dat in PHP 3, unset() altijd TRUE geeft (om precies te zijn de integer waarde 1). In PHP 4 is unset() geen echte functie meer, het is nu een statement. Dat zijnde wordt er geen waarde teruggegeven, en als je probeert de waarde van unset() op te vangen krijg je een parse error.

Example#1 unset() voorbeeld

// destroy a single variable
unset ($foo);

// destroy a single element of an array
unset ($bar['quux']);

// destroy more than one variable
unset ($foo1, $foo2, $foo3);

Het gedrag van unset() in een functie kan varieëren afhankelijk van het type variabele dat je probeert te vernietigen.

Als unset() wordt gebruikt om een globaal gemaakte variabele te verwijderen in een functie, zal alleen de lokale variabele worden vernietigd. De variabele in de omgeving erbuiten zal dezelfde waarde behouden als voordat unset() was aangeroepen.

function destroy_foo() {
    global $foo;
    unset($foo);
}

$foo = 'bar';
destroy_foo();
echo $foo;
Het voorbeeld hierboven zal printen:
bar

Als een variabele is DOOR EEN VERWIJZING IS GEGEVEN, en door unset() in een functie wordt gewist, zal alleen de lokale variabele worden vernietigd. De variabele in de omgeving erbuiten zal dezelfde waarde behouden als voordat unset() was aangeroepen.

function foo(&$bar) {
    unset($bar);
    $bar = "blah";
}

$bar = 'something';
echo "$bar\n";

foo($bar);
echo "$bar\n";
Het voorbeeld hierboven zal printen:
something
something

Als unset() wordt toegepast op een statische variabele in een functie, dan zal unset() de variabele en alle verwijzingen vernietigen.

function foo() {
    static $a;
    $a++;
    echo "$a\n";
    unset($a);
}

foo();
foo();
foo();
Het voorbeeld hierboven zal printen:
1
2
3

Als je een globale variabele wil unset()ten in een functie, dan kan je de $GLOBALS array gebruiken om dat te doen.

function foo() {
    unset($GLOBALS['bar']);
}

$bar = "something";
foo();

Zie ook: isset() en empty().