unset

(unknown)

unset -- Adott változó felszabadítása

Leírás

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

Megjegyzés: Az unset() egy nyelvi szerkezet.

Az unset() megszünteti az adott változókat. A PHP 3-ban mindig TRUE értékkel tér vissza (egészen pontosan az 1 értékű egész számmal). A PHP 4-esben az unset() többé már nem függvény, hanem parancs. Ezért nincs visszatérési érték, és a visszatérési érték használata feldolgozási hibát jelent.

Példa 1. unset() példa

// Egy változó törlése
unset ($ize);

// Egy tömbelem törlése (nem az egész tömb törlése!)
unset ($valami['barmi']);

// Több mint egy változó törlése
unset ($ize1, $ize2, $ize3);

Az unset() hatása egy függvényen belül attól függ, hogy milyen típusú változót próbálsz meg törölni.

Ha egy globális környezetből betöltött változót próbálsz meg törölni a függvényben, csak a lokális változót törlöd. A hívó környezetben lévő változó megtartja unset() hívás előtti értékét.

function ize_torlese() {
    global $ize;
    unset($ize);
}

$ize = 'valami';
ize_torlese();
echo $ize;

A fenti példa a következőt írja ki:

valami

Ha egy olyan változót törölsz egy függvényben, amit referenciaképzéssel adtál át, csak a helyi változót törlöd. A hívó környezetben lévő változó megtartja unset() hívás előtti értékét.

function ize(&$valami) {
    unset($valami);
    $valami = "másmilyen szöveg";
}

$valami = 'valamilyen szöveg';
echo "$valami\n";

foo($valami);
echo "$valami\n";

A fenti példa kimenete:

valamilyen szöveg
valamilyen szöveg

Ha egy statikus változót törölsz egy függvényben, az unset() törli a változót, és minden rá mutató referenciát.

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

ize();
ize();
ize();

A fenti példa kimenete:

1
2
3

Ha egy globális változót szeretnél törölni egy függvényen belül, használd a $GLOBALS tömböt erre a célra:

function ize() {
    unset($GLOBALS['valami']);
}

$valami = "bármi";
ize();

Lásd még isset() és empty().