Hier im Forum bekommt ihr bei euren fragen schnelle hilfe.Hier geht es rund um das Web SeitenProgrammieren.Alles rund ums Javascript,Html,Php,Css und Sql.Auf fast allen Fragen haben wir eine Antwort.
Der Soforthilfe-chat verspricht das ,was sein Name sagt. Hier sind Leute Online die sofort ihre hilfe anbieten.Seht in der OnlineListe nach und wenn einer Online ist werdet ihr auch antwort bekommen. Admine ,Moderatoren und Helfer sind unsere Spezialisten in Sachen Web Programierung
71 Unwetterwarnungen in Deutschland
Die Datenbank wurde zuletzt am 02.08.2020 17:34:28 aktualiesiert
71

Alle aktuell definierten Variablen ausgeben

Wie in PHP alle Variablen ausgegeben werden können, ohne dass diese namentlich bekannt sein müssen

1. get_defined_vars()

Die aktuell definierten Variablen lassen sich über get_defined_vars() ermitteln. Die Funktion gibt ein Array zurück, welches den Namen der Variablen jeweils als Schlüssel und ihren Inhalt als Wert enthält (Variablenname => Variableninhalt). Am besten gibt man dieses Array einfach über var_dump() aus.

PHP-Code
<?php
    $a = 999;
	var_dump(get_defined_vars());
?>

HTML-Code: Ausgabe
array(6) {
  ["GLOBALS"]=>
  &array(6) {
    ["GLOBALS"]=>
    *RECURSION*
    ["_POST"]=>
    array(0) {
    }
    ["_GET"]=>
    array(0) {
    }
    ["_COOKIE"]=>
    array(0) {
    }
    ["_FILES"]=>
    array(0) {
    }
    ["a"]=>
    int(999)
  }
  ["_POST"]=>
  array(0) {
  }
  ["_GET"]=>
  array(0) {
  }
  ["_COOKIE"]=>
  array(0) {
  }
  ["_FILES"]=>
  array(0) {
  }
  ["a"]=>
  int(999)
}


2. get_defined_vars() und globale Variablen/Superglobals

Wird get_defined_vars() auf oberster Ebene aufgerufen, enthält das zurückgegebene Array auch die Superglobals. Bei Aufruf von get_defined_vars() im Geltungsbereich einer Funktion sind diese nicht mehr Teil der Rückgabe, obwohl aus der Funktion heraus auf sie zugegriffen werden kann.

PHP-Code
<?php
	function test() {
		$b = 1234;
		
		var_dump(get_defined_vars());
	}

	$a = 999;
	test();
?>

HTML-Code: Ausgabe
array(1) {
  ["b"]=>
  int(1234)
}


Wie zu sehen ist, fehlen auch alle sonstigen globalen Variablen. Erst wenn diese im Geltungsbereich (Scope) der Funktion über das Schlüsselwort „global” explizit „importiert” werden, werden sie auch von get_defined_vars() zurückgegeben. Wie im nachfolgenden Beispiel zu sehen ist, wird aber nicht wirklich die globale Variable „importiert”. Stattdessen handelt es sich um eine Referenz auf diese, was in der Praxis aber keinen Unterschied macht.

PHP-Code
<?php
	function test() {
		global $a;
		global $_POST;  // Die Anwendung von global auf eine Superglobale erzeugt zwar keinen Fehler,
				// in der Rückgabe von get_defined_vars() ist sie aber trotzdem nicht enthalten.
		$b = 1234;
		
		// zum Vergleich $d mit Referenz auf $c
		$c = 42;
		$d =& $c;
		
		var_dump(get_defined_vars());
	}

	$a = 999;
	test();
?>

HTML-Code: Ausgabe
array(4) {
  ["a"]=>
  &int(999)
  ["b"]=>
  int(1234)
  ["c"]=>
  &int(42)
  ["d"]=>
  &int(42)
}