Hans-Peter: Variablen anzeigen

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?

  1. 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

    --
    sumpsi - posui - obstruxi
  2. Hallo Hans-Peter,

    vermutlich suchst Du get_defined_vars.

    Grüße, Martl

    1. 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.)