PHP Portal » PHP Handbuch » unset

Werbung

unset


(PHP 4, PHP 5)

unsetLöschen einer angegebenen Variablen

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 Code
1
2
3
4
5
6
7
8
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 Code
1
2
3
4
5
6
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 Code
1
2
3
4
5
6
7
8
9
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 Code
1
2
3
4
5
6
7
8
9
10
11
12
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.1 Unterstützung für multiple Argumente hinzugefügt.
4.0.0 unset() wird ein Ausdruck. (In PHP 3 gibt unset() immer 1 zurück).

Beispiele

PHP Code
1
2
3
4
5
6
7
// 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);

PHP Code
1
2
$name = 'Felipe'; var_dump((unset) $name);

Anmerkungen

Hinweis: Da dies ein Sprachkonstrukt und keine Funktion ist, 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.

Hinweis: Wenn unset() auf Objekteigenschaften angewendet wird, auf die nicht direkt zugegriffen werden kann, wird, sofern sie deklariert wurde, die Überladungsmethode __unset aufgerufen.

Siehe auch

  • isset() - Prüft, ob eine Variable existiert und ob sie nicht NULL ist
  • empty() - Prüft, ob eine Variable einen Wert enthält
  • __unset
  • array_splice() - Entfernt einen Teil eines Arrays und ersetzt ihn durch etwas anderes