PHP Variable Variablen
Joah.
- php
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>";
}
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
warum übergibst du den variablenname nich auch mit? als string?
Wie meinst du mit ? als String???
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
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.
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
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
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
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.
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";
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