Eine Variable löschen

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"

}