PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Anzeigen aller definierten Variablen


Nina
05.12.2002, 21:04:59
hi, wie kann ich mir (kann ich überhaupt) alle variablen, die ich aus einem vorherigen script bekomme, anzeigen lassen?
ohne die variablennamen überhaupt zu kennen, weil die
Variablen fortlaufend nummeriert sind z.B.

$wert1
$wert2
$wert3... usw.

Darksaber
05.12.2002, 21:08:55
versuchs mal mit

array get_defined_vars ()

Nina
05.12.2002, 21:19:33
kannst du mir vieleicht noch ein bisschen mehr dazu geben?

ich find denn array befehl nicht.....

wenn ich nen echo davor mache steht da nur array im browser fenster :(

Dago
05.12.2002, 21:59:05
Was zurückgegeben wird, ist ein Wert (o. a. Variable) vom Typ Array.
Ansehen kannst du Arrays mit print_r($array);

//Oder für get_defined_vars() direkt:
print_r(get_defined_vars());

Darksaber
05.12.2002, 22:02:09
hi

ich geb zu, ih hab die funktion selber noch nie benutz/benötig, deshalb ist mir erst jetzt aufgefallen, dass sie ALLE variablen ausgibt, auch die system und umgebungsvariablen.
Und das ist es wohl kaum was du brauchst.

sorry aber ne andere Lösung fällt mir jetzt auch net ein.

Nina
05.12.2002, 22:54:07
=) ich habs gelöst

weis leider net wie der forum befehl ist für denn code....

zumindest siehts dann so aus :)

<?
$wert= array_keys(get_defined_vars());
print_r(array_keys(get_defined_vars()));
echo "<br><br><br>";//,$wert[34];
...

...
$eigenschaften=$eigenschaften.$$wert[$b]." ".$$wert[$c].$d;
//
}
echo $eigenschaften;
...

hat mir denn entscheidenden tipp gegeben thx

ich schau mir auch mal deinen vorschlag an dago aber morgen...

*gähnt*

MiH
06.12.2002, 08:24:00
nina was willst du machen? ichglaube du gehst da einen falschen weg, der einfach zu kompliziert ist :)

Nina
06.12.2002, 13:14:54
naja...

ich hab ein script das erstellt mir eine tabelle die man bestimmen kann wie groß sie ist jedes feld der tabelle erzeugt eine forlaufende Variable also $wert1 .....

dann hab ich ein weiteres script wohin die ganzen variablen weitergeleitet werden (also mit <form></form>)

und in diesem script muss ich mir alle $wert variabelen ausgeben lassen aber da die $wert variablen ja unendlich groß sein können kann ich das ja schlecht vordefinieren.

also brauche ich einen befehl/e der mir die ganzen $wert variablen ausgibt (while schleife etc...)

aber das geht ja schlecht da ich ja nicht $wert++
machen kann oder so

deswegen dachte ich das ich mir mal alle variablen ausgeben lasse und das dann irgendwie filtere (was auch klappt)

hat jemand eine einfachere lösung weil das schon recht verwirrend ist was ich da hab?

Dago
06.12.2002, 14:21:32
Gaaanz einfach ;)
Lass dir die $werte-Variablen als Array vom Browser zurückgeben.
Dann kannst du mit foreach ($werte as $wert)
echo $wert; alle Werte durchlaufen.

Damit PHP aus den Variablen auch ein Array macht, müssen die Namen der Input-felder des Formulars so lauten: werte[]
Nochmal als Ganzes:
<?php

foreach ($werte as $wert)
echo $wert;

?><form action="" method="post">
<input type="text" name="werte[]" /><br />
<input type="text" name="werte[]" /><br />
<input type="text" name="werte[]" /><br />
<input type="submit" />
</form>
Du siehst, alle Input-Namen sind gleich. Trotzdem wird jedes einzelne Feld an PHP übergeben.

cu
dago

Nina
06.12.2002, 14:39:55
hmmm fehlt da nicht noch ein array oder sowas? alleine das geht nicht.....


Warning: Invalid argument supplied for foreach() in C:apachehtdocstrashtest1.php on line 3

in zeile drei als bei

foreach ($werte as $wert)

ist noch garkeine variable gesetzt...

aber erlich gesagt kenne ich mich mit arrays nicht wirklich aus :/

Dago
06.12.2002, 14:45:47
Das ist klar. Sende das Form. mal ab, und es wird gehen (Weil PHP die Var. dann bekommt).
ABER: Das war auch nur ein Beispiel zum Verständnis =)
Für deine Tabelle musst du es sowieso anders schreiben...

Nina
06.12.2002, 14:46:29
hmhm überseht das was ich da oben geschrieben habe war ein bisschen verwirrt ;)

jetzt geht es

PS: danke schön :) das forum ist sehr hilfreich ich glaub hier bleib ich

Nina
06.12.2002, 15:42:58
das ist es :)

<?
$a=-1;
$b=-1;
$c=-1;
$d=0;
$tabcreate="";
$komma=", ";
while($d != $zeilen){
$a++;
$b++;
$c++;
$d++;
if ($zeilen == $d)
{
$komma=" ";
}
$var = array($wert[$a]," ",$typ[$b],$lange[$c],$komma);
foreach ($var as $value){
echo $value;
$tabcreate=$tabcreate.$value;
}
}
echo "<br><br><br>",$tabcreate;
?>