Eine Variable löschen (Thema: PHP Beispiele)

Wie bereits definierte/initialisierte Variablen in PHP wieder gelöscht werden können

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 alt
u
ArnoNuehm (Gast) #