Function.unset
Aus PHP-Wiki
unset — Löschen einer angegebenen Variablen
Inhaltsverzeichnis |
Beschreibung
void unset (mixed $var [,mixed $var [,mixed $... ]] )
unset() löscht die angegebene Variable.
Das Verhalten von unset() innerhalb einer Funktion kann
abhängig davon, was für einen Variablentyp Sie zu löschen versuchen,
variieren.
Wenn eine globalisierte Variable innerhalb einer Funktion mit
unset() behandelt wird, wird nur die lokale Variable
gelöscht. Die Variable innerhalb der aufrufenden Umgebung behält den selben
Wert wie vor dem Aufruf von unset().
<?php
function destroy_foo()
{
global $foo;
unset($foo);
}
$foo = 'bar';
destroy_foo();
echo $foo;
?>
Das oben gezeigte Beispiel erzeugt folgende
Ausgabe:
bar
Wenn Sie eine globale Variable innerhalb einer Funktion löschen wollen,
können Sie das $GLOBALS-Array dazu verwenden:
<?php
function foo()
{
unset($GLOBALS['bar']);
}
$bar = "something";
foo();
?>
Wenn eine Variable, die als Referenz übergeben wird ("Passed by Reference"),
innerhalb einer Funktion gelöscht wird, wird nur die lokale Variable
gelöscht. Die Variable im aufrufenden Environment enthält den selben Wert
wie vor dem Aufruf von unset().
<?php
function foo(&$bar)
{
unset($bar);
$bar = "blah";
}
$bar = 'something';
echo "$bar\n";
foo($bar);
echo "$bar\n";
?>
Das oben gezeigte Beispiel erzeugt folgende
Ausgabe:
something
something
Wenn eine statische Variable innerhalb einer Funktion gelöscht wird, löscht
unset() die Variable nur im Kontext des verbleibenden
Funktionsablaufs. Die folgenden Aufrufe stellen den vorhergehenden Wert der
Variablen wieder her.
<?php
function foo()
{
static $bar;
$bar++;
echo "Vor unset: $bar, ";
unset($bar);
$bar = 23;
echo "nach unset: $bar\n";
}
foo();
foo();
foo();
?>
Das oben gezeigte Beispiel erzeugt folgende
Ausgabe:
Vor unset: 1, nach unset: 23
Vor unset: 2, nach unset: 23
Vor unset: 3, nach unset: 23
Parameter-Liste
- var
- Die zu löschende Variable.
- var
- Eine weitere Variable ...
- ...
Rückgabewerte
Es wird kein Wert zurückgegeben.
ChangeLog
Version
Beschreibung
4.0.0
unset() wird ein Ausdruck. (In PHP 3 gibt
unset() immer 1 zurück).
Beispiele
#1 unset()
<?php // löscht eine einzelne Variable unset($foo); // löscht ein einzelnes Element eines Arrays unset($bar['quux']); // löscht mehr als eine Variable unset($foo1, $foo2, $foo3); ?>
Beispiel #2 Verwendung von (unset) Casting
<?php $name = 'Felipe'; var_dump((unset) $name); ?>
Anmerkungen
Hinweis: Da dies ein Sprachkonstrukt
und keine Funktion ist, deshalb können Sie dieses nicht mit
Variablenfunktionen
verwenden.
Hinweis:
Es ist möglich, sogar Objekteigenschaften zu löschen, die im aktuellen
Kontext sichtbar sind.
Hinweis:
Es ist ab PHP 5 nicht mehr möglich, $this innerhalb
einer Objektmethode zu löschen.