unset
(PHP 4, PHP 5, PHP 7)
unset — Löschen einer angegebenen Variablen
Beschreibung
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
Um eine globale Variable innerhalb einer Funktion zu löschen, kann das $GLOBALS-Array verwendet werden:
<?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
Beispiele
Beispiel #1 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);
?>
Beispiel #2 Verwendung von (unset) Casting
(unset) Casting wird häufig mit der unset() Function verwechselt. (unset) Casting dient nur als ein NULL-Typ-Cast, der Vollständigkeit halber. Es ändert nicht die gecastete Variable. Das (unset) Casting ist ab PHP 7.2.0 missbilligt.
<?php
$name = 'Felipe';
var_dump((unset) $name);
var_dump($name);
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
NULL string(6) "Felipe"
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
- (unset) casting
Deutsche Übersetzung
Sie haben gebeten, diese Seite auf Deutsch zu besuchen. Momentan ist nur die Oberfläche übersetzt, aber noch nicht der gesamte Inhalt.Wenn Sie mir bei Übersetzungen helfen wollen, ist Ihr Beitrag willkommen. Alles, was Sie tun müssen, ist, sich auf der Website zu registrieren und mir eine Nachricht zu schicken, in der Sie gebeten werden, Sie der Gruppe der Übersetzer hinzuzufügen, die Ihnen die Möglichkeit gibt, die gewünschten Seiten zu übersetzen. Ein Link am Ende jeder übersetzten Seite zeigt an, dass Sie der Übersetzer sind und einen Link zu Ihrem Profil haben.
Vielen Dank im Voraus.
Dokument erstellt 30/01/2003, zuletzt geändert 26/10/2018
Quelle des gedruckten Dokuments:https://www.gaudry.be/de/php-rf-function.unset.html
Die Infobro ist eine persönliche Seite, deren Inhalt in meiner alleinigen Verantwortung liegt. Der Text ist unter der CreativeCommons-Lizenz (BY-NC-SA) verfügbar. Weitere Informationen auf die Nutzungsbedingungen und dem Autor.
Referenzen
Diese Verweise und Links verweisen auf Dokumente, die während des Schreibens dieser Seite konsultiert wurden, oder die zusätzliche Informationen liefern können, aber die Autoren dieser Quellen können nicht für den Inhalt dieser Seite verantwortlich gemacht werden.
Der Autor Diese Website ist allein dafür verantwortlich, wie die verschiedenen Konzepte und Freiheiten, die mit den Nachschlagewerken gemacht werden, hier dargestellt werden. Denken Sie daran, dass Sie mehrere Quellinformationen austauschen müssen, um das Risiko von Fehlern zu reduzieren.