Az unset()

 


Egy változó törlése
<?php
$a = 56;
echo "Változó értéke az unset() előtt = $a <br />";

unset ($a);

echo "Változó értéke az unset() után = $a ";
?>

PHP 5.4.xx-től kezdve, így helyes a meghatározás: <?php $a = 56; echo "Változó értéke az unset() előtt = $a <br />"; unset ($a); if (isset($a)) {echo "Változó értéke az unset() után = ".$a;} else echo "Változó értéke az unset() után = Változó nem létezik"; ?>
Programunk eredménye:

Változó értéke az unset() előtt = 56
Változó értéke az unset() után = Változó nem létezik

 


Több változót is törlhetunk, ha a zárójelek között, a törlendő változókat vesszővel elválasztva soroljuk fel.

Több változó törlése
<?php
$a=56;    $b=6;    $c=5;
echo "$a változó értéke az unset() előtt = $a <br />";
echo "$b változó értéke az unset() előtt = $b <br />";
echo "$c változó értéke az unset() előtt = $c <br />";

unset ($a, $b, $c);

echo "$a változó értéke az unset() után = $a <br />";
echo "$b változó értéke az unset() után = $b <br />";
echo "$c változó értéke az unset() után = $c <br />";
?>

PHP 5.4.xx től kezdve így helyes a meghatározás. <?php $a=56; $b=6; $c=5; echo "$a változó értéke az unset() előtt = $a <br />"; echo "$b változó értéke az unset() előtt = $b <br />"; echo "$c változó értéke az unset() előtt = $c <br />"; unset ($a, $b, $c); if (isset($a)) {echo "Változó értéke az unset() után = ".$a."<br />";} else echo "Változó értéke az unset() után = &#036;a Változó, nem létezik <br />"; if (isset($b)) {echo "Változó értéke az unset() után = ".$b."<br />";} else echo "Változó értéke az unset() után = &#036;b Változó, nem létezik <br />"; if (isset($c)) {echo "Változó értéke az unset() után = ".$c."<br />";} else echo "Változó értéke az unset() után = &#036;c Változó, nem létezik <br />"; ?>
Programunk eredménye:

$a változó értéke az unset() előtt = 56
$b változó értéke az unset() előtt = 6
$c változó értéke az unset() előtt = 5

Változó értéke az unset() után = $a Változó, nem létezik
Változó értéke az unset() után = $b Változó, nem létezik
Változó értéke az unset() után = $c Változó, nem létezik

 


Az unset() hatása, egy függvényen belül.

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

Az unset() hatása, egy függvényen belül.
<?php
$adat = 'Zebra';   // $adat változó értéket: Zebra

function Zebra_torles() {
    global $adat;   // Változó értéket: Zebra
    unset($adat);   // Változó értéke: törölve
    }

Zebra_torles();    // Változó értéke törölve, ezért függvényünk nem tárol adatot.

echo $adat;      // Kiírja a $adat változóban tárolt értéket: Zebra
?>
Programunk eredménye:

Zebra