1. Erläuterungen
Es gibt drei Wege, um bereits definierte Variablen in PHP wieder zu löschen. Dargestellt am Beispiel der Variable $var lauten diese:
- unset($var)
- $var = (unset)$var
- $var = null
Nur der erste dieser Wege löscht die Variable tatsächlich komplett. Die anderen beiden setzen sie auf NULL, wodurch die Variable zwar keinen Wert mehr hat, aber prinzipiell noch immer vorhanden ist. Ein Zugriff auf diese würde keinen „Variable existiert nicht”-Fehler erzeugen.
2. Beispiel: unset($var) vs (unset)$var vs $var = null
In diesem Beispiel werden die Variablen $var1, $var2 und $var3 identisch definiert. Auf die drei werden dann unset($var1), $var2 = (unset)$var2 und $var3 = null angewendet. Anschließend werden die Variablen erneut ausgegeben.
PHP-Code
<?php error_reporting(E_ALL); // Beispielvariablen definieren $var1 = 'example'; $var2 = 'example'; $var3 = 'example'; // Ein mal vor loeschen ausgeben var_dump($var1, $var2, $var3); // Variablen loeschen unset($var1); $var2 = (unset)$var2; $var3 = null; // Variablen nach loeschen ausgeben // bei var1 sollte ein Fehler kommen, da sie komplett geloescht wurde var_dump($var1, $var2, $var3); // Auflisten aller derzeit vorhandenen Variablen var_dump(get_defined_vars()); ?>
PHP-Code: Ausgabe
string(7) "example" string(7) "example" string(7) "example" <br /> <b>Notice</b>: Undefined variable: var1 in <b>...\test.php</b> on line <b>19</b><br /> NULL NULL NULL array(8) { ["GLOBALS"]=> &array(8) { ["GLOBALS"]=> *RECURSION* ["_POST"]=> array(0) { } ["_GET"]=> array(0) { } ["_COOKIE"]=> array(0) { } ["_FILES"]=> array(0) { } ["var2"]=> NULL ["var3"]=> NULL ["php_errormsg"]=> string(24) "Undefined variable: var1" } ["_POST"]=> array(0) { } ["_GET"]=> array(0) { } ["_COOKIE"]=> array(0) { } ["_FILES"]=> array(0) { } ["var2"]=> NULL ["var3"]=> NULL ["php_errormsg"]=> string(24) "Undefined variable: var1" }
Kommentare (1)
Von neu nach altWir bitten um ihr Verständnis.