unset

(PHP 4, PHP 5, PHP 7, PHP 8)

unsetunset() (löschen) einer angegebenen Variablen

Beschreibung

unset(mixed $var, mixed ...$vars): void

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().

Beispiel #1 Verwendung von unset()

<?php
function destroy_foo()
{
global
$foo;
unset(
$foo);
}

$foo = 'bar';
destroy_foo();
echo
$foo;
?>

Um eine globale Variable innerhalb einer Funktion mittels unset() zu löschen, kann das $GLOBALS-Array verwendet werden:

Beispiel #2 unset() bei einer globalen Variable

<?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().

Beispiel #3 unset() bei einer Referenz

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

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

foo($bar);
echo
"$bar\n";
?>

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.

Beispiel #4 unset() bei einer statischen Variable

<?php
function foo()
{
static
$bar;
$bar++;
echo
"Vor unset: $bar, ";
unset(
$bar);
$bar = 23;
echo
"nach unset: $bar\n";
}

foo();
foo();
foo();
?>

Parameter-Liste

var

Die zu löschende Variable.

vars

Weitere zu löschende Variablen ...

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #5 unset()-Beispiel

<?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);
?>

Anmerkungen

Hinweis: Da dies ein Sprachkonstrukt und keine Funktion ist, können Sie dieses nicht mit Variablenfunktionen oder benannten Parametern verwenden.

Hinweis:

Es ist möglich, Objekteigenschaften zu löschen, die im aktuellen Kontext sichtbar sind.

Falls deklariert, wird __get() aufgerufen, wenn auf eine nicht gesetzte Eigenschaft zugegriffen wird, und __set() wird aufgerufen, wenn eine nicht gesetzte Eigenschaft gesetzt wird.

Hinweis:

Es ist nicht 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