Joah.: PHP Variable Variablen

Hallo,

ich benutze in einem Projekt von eine debug Klasse mit einer dump Funktion, auf die ich wie folgt zugreife:

$debug->dump($freunde);

$freunde ist in diesem Fall ein Array, innerhalb der Funktion wird ganz einfach ein vorformatierter text ausgegeben. Nun möchte ich das ganze schöner formatieren, damit ich damit besser arbeiten kann.

Nun möchte ich in der ersten Row/Spalte der Tabelle den Variablennamen, der Variablen die übergeben wurde ausgeben. Mit $$ etc. habe ich probiert, funktioniert nicht! :(

jemand eine Idee?

Danke für eure Hilfe.

Joah.

------------------

Funktion:

function dump() {
  echo "<table cellspacing=1 cellpadding=0>";

echo "<tr>";
  echo "<td bgcolor='CCCCCC'>";
  echo func_get_arg(0);
  echo "</td>";
  echo "</tr>";

echo "<tr>";
  echo "<td bgcolor='FFC9C9'>";

echo "<pre>";
  print_r(func_get_arg(0));
  echo "</pre>";
  echo "</td>";
  echo "</tr>";
  echo "</table>";
}

  1. Hi,

    Nun möchte ich in der ersten Row/Spalte der Tabelle den Variablennamen, der Variablen die übergeben wurde ausgeben.

    warum übergibst du den variablenname nich auch mit? als string?

    MfG

    1. warum übergibst du den variablenname nich auch mit? als string?

      Wie meinst du mit ? als String???

      1. hi,

        warum übergibst du den variablenname nich auch mit? als string?

        Wie meinst du mit ? als String???

        [ ] du weißt, was ein string in PHP ist.

        "variablenname"

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. hi,

          warum übergibst du den variablenname nich auch mit? als string?

          Wie meinst du mit ? als String???

          [ ] du weißt, was ein string in PHP ist.

          "variablenname"

          ja schon, ich glaube wir reden aneinander vorbei. Ich kenn den Variablennamen ja nicht, da dieser über die Funktion übergeben wird. Dort kann $a, $b etc. was auch immer stehen und genau das was hier steht, möchte ich als Text übergeben haben.

          Gruß
          Joah.

          1. hi,

            Ich kenn den Variablennamen ja nicht, da dieser über die Funktion übergeben wird.

            aber diese funktion wirst du doch wohl irgend _aufrufen_?

            und genau an der stelle meine Daniel, solltest du dann auch den namen der variablen als string übergeben.

            Dort kann $a, $b etc. was auch immer stehen und genau das was hier steht, möchte ich als Text übergeben haben.

            dann schreib dort als zusätzlichen parameter eben auch noch 'a', 'b' etc. hin.

            eine andere möglichkeit, das was du vorhast zu erreichen, ist mir nicht bekannt.

            gruß,
            wahsaga

            --
            /voodoo.css:
            #GeorgeWBush { position:absolute; bottom:-6ft; }
            1. Hi,

              achso, jetzt weiß ich wie ihr das meint :)
              Ja, so könnte das auch gehen, dann muß ich aber alle Zugriffe auf die Funktion anpassen :(

              Joah.

              hi,

              Ich kenn den Variablennamen ja nicht, da dieser über die Funktion übergeben wird.

              aber diese funktion wirst du doch wohl irgend _aufrufen_?

              und genau an der stelle meine Daniel, solltest du dann auch den namen der variablen als string übergeben.

              Dort kann $a, $b etc. was auch immer stehen und genau das was hier steht, möchte ich als Text übergeben haben.

              dann schreib dort als zusätzlichen parameter eben auch noch 'a', 'b' etc. hin.

              eine andere möglichkeit, das was du vorhast zu erreichen, ist mir nicht bekannt.

              gruß,
              wahsaga

              1. Hi,

                Ja, so könnte das auch gehen, dann muß ich aber alle Zugriffe auf die Funktion anpassen :(

                was hast du bitte gemacht damit du diese funktion so oft brauchst? also
                ich geb nicht auf jeder seite alle dort verwendeten variablen aus
                höchstens zu testzwecken.

                wenn es keine funktion wäre würde es unter umständen mit einem
                echo '$var -> '."$var";
                funktionieren.

                MfG

                1. Hi!

                  Ja, so könnte das auch gehen, dann muß ich aber alle Zugriffe auf die Funktion anpassen :(

                  was hast du bitte gemacht damit du diese funktion so oft brauchst? also
                  ich geb nicht auf jeder seite alle dort verwendeten variablen aus
                  höchstens zu testzwecken.

                  Ich gebe auch nicht alle aus, ich verwende Smarty als Template Engine, erzeuge in der ersten Instanz PHP Arrays die später an Smarty übergeben werden, daher brauch ich den Dump was in dem Array drin steht doch relativ oft.

                  Mfg
                  Joah.

              2. echo $begrüßung;

                Ja, so könnte das auch gehen, dann muß ich aber alle Zugriffe auf die Funktion anpassen :(

                Nicht nötig. Mach den zweiten Parameter optional, dann können die "alten" Aufrufe erhalten bleiben, sie zeigen dann eben nur den Default-Wert an:

                function dump($var, $varname = 'nix übergeben') {...}

                echo "$verabschiedung $name";

              3. Hi,

                Ja, so könnte das auch gehen, dann muß ich aber alle Zugriffe auf die Funktion anpassen :(

                Nein. Z.B. so:

                  
                function dump($varname) {  
                 global $$varname;  
                 if(is_string($varname) && isset($$varname)) {  
                  echo '<h1>$'.$varname.'='.$$varname.'</h1>';  
                  } else {  
                  echo '<h1>'.$varname.'</h1>';  
                 }  
                }  
                  
                  
                $test="Hello World";  
                dump($test);  // -> Hello World  
                dump("test"); // -> $test=Hello World  
                
                

                Allerdings gibt ein dump("test2") dann eben auch test2 aus. Sollte zwar ausreichen, aber sicherheitshalber könnte man noch einen optionalen Parameter übergeben, daß der übergebene Parameter wirklich ein Variablenname ist.

                Weitere sinnvolle Anpassungen wären z.B. var_dump() statt echo() nach Überprüfung mittels is_array().

                Gruß, Cybaer

                --
                Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!