Variablen anzeigen
Hans-Peter
- php
Hallo,
kann man sich in einem PHP-Programm alle seine definierten Variablen $.... ausdrucken lassen, ohne die Namen einzeln in einem echo angeben zu müssen?
Hallo Hans-Peter,
probier's mal mit $GLOBALS:
var_dump($GLOBALS);
Das rotzt aber nur die Variablen auf globaler Stufe raus. Für die Variablen innerhalb einer Funktion kenne ich nichts vergleichbares - da sollte es mangels Menge aber auch nicht nötig sein.
Eigentlich sollte das bei ordentlicher Programmstruktur auch auf globaler Ebene nicht wirklich hilfreich sein, aber wenn man alles global rumfliegen hat, dann kann man bei $GLOBALS vermutlich Nutzen finden.
Bei mir würde man da nur einige wenige Objektreferenzen finden.
Rolf
Hallo Hans-Peter,
vermutlich suchst Du get_defined_vars.
Grüße, Martl
Diese, sehr gute Antwort ist ein Anwendungsbeispiel wert:
<?php
header( "Content-Type:text/plain" );
$foo = 'FOO';
$bar = [ 1, 2, 'FOO', 'BAR',[ 'BAZ', 'TOK' ] ];
function f( $x ) {
$y = $x * $x;
var_dump( get_defined_vars() );
return $y;
}
class Fruit {
public $name;
public $color;
function __construct( $Name, $Color="Gelb" ) {
$this -> set_name( $Name );
$this -> set_color( $Color );
var_dump( get_defined_vars() );
}
function set_name( $Name ) {
$this->name = $Name;
}
function set_color( $Color ) {
$this->color = $Color;
}
function debug_me() {
var_dump( $this );
}
}
function printLine( $EOL_before = 0 ) {
echo (
str_repeat( PHP_EOL, $EOL_before )
. str_repeat( "=", 70 )
. PHP_EOL
);
}
printLine( 0 );
echo "Variablen vor Ablauf:";
printLine( 1 );
var_dump( get_defined_vars() );
printLine( 2 );
echo "In der Funktion:";
printLine( 1 );
$y = f( 2 );
printLine( 2 );
echo "Beim Objekt kreiren:";
printLine( 1 );
$apple = new Fruit ( 'Apfel ');
printLine( 2 );
echo "Objekt debuggen:";
printLine( 1 );
$apple -> debug_me();
printLine( 0 );
echo "Variablen nach Ablauf:";
printLine( 1 );
var_dump( get_defined_vars() );
(Es werden die Variablen/Objekteigenschaften und deren Werte ausgegeben.)