Name einer Variable aus Variablen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anwendbarkeit
ausgabe
beispiel
bestimmte ausgabe
code
definiert code
definition
einfacher code
finger
glauben
gut dokumentiert aufbewahren
halten
inhalt
kombination
kompliziertheit
programm
sorgen
string
test
variable echo
-
Gibt es irgendwie eine Möglichkeit, dass man dafür sorgen kann, dass der NAME einer Variable aus Variablen besteht? Also Zum Beispiel:
<?php
$a=$_POST["a"];
$zero = 0;
while($zero < $a)
{
$zero++;
...
und dann irgendwie sowas:
$var$zero=$_POST["var".$zero];
}
?>
Sodass, wenn Variable Zero den Wert 2 enthält, dann die andere Variable $var2 heisst.
Kann mir jemand helfen? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Wenn ich dich richtig verstanden hab, müsste es glaub ich so gehen:
eval("$var1". "$var2");
Edit:
@epsys
1. Dein Code hat Syntaxfehler
2. Wenn der Code so aussehen würde:
<?php $variable="2"; $hauptvariable="$test"; $ausgabe=".$hauptvariable.".".$variable."; echo $ausgabe; ?>
dann wäre $ausgabe ein String
Beitrag zuletzt geändert: 9.4.2010 14:04:16 von mator-kaleen -
Stop!
Den Inhalt einer Variable als Variablennamen zu nutzen funktioniert viel einfacher!
$varname = "test"; $$varname = "Hallo"; echo $test;
-
Ums einfach zu halten.
$var1 = "test"; $var2 = "2"; echo $var1; echo $var2;
Oder möchtest du das da etwas nur angezeigt wird wenn die Var. einen bestimmten Wert / eine bestimmte ausgabe haben?
Mfg -
@jwolff
Du hast es falsch verstanden: Er will, dass man aus 2 Variablen einen neuen Variablennamen zusammensetzt. Mit echo schreibst du das ja nur im Browser. -
@squid
Gibt es irgendwie eine Möglichkeit, dass man dafür sorgen kann, dass der NAME einer Variable aus Variablen besteht
ja das geht:
ein sehr triviales beispiel. kannst so weit komplizieren, dass niemand mehr sagen kann was in der variable ist (auch du nicht!) ;o)// das sind deine vordefinierten variablen $_12 = "das ist var. '\$_12' (könnte aber auch wurst drin sein)"; $_21 = "das ist var. '\$_21' (auch hier könnte klobasse stehen)"; // hier wird anhand des wertes in $var1 entschieden wie $var2 heißt $var1 = 1; //zulässige werte : 1, 2 (wegen obiger vordefinition) $var2 = ( $var1 === 1 ) ? 2: 1; // das ist die definition der 'varable Variable' ($_12, $_21 oder $_?1 [was ja im beispiel ungültig ist!]) $v1 = "var1"; $v2 = "var2"; // hier wird die 'varable Variable' sozusagen assembliert $v3 = "_{$$v1}{$$v2}"; // hier prüfst du, ob die variable überhaupt definiert ist if ( isset ($$v3) ) { echo "<strong>in der var '\$$v3' steht: </strong>" . $$v3; } else { echo "<strong>die var '\$$v3' ist nicht definiert!!</strong>"; }
um zu sehen was passiert, gebe in die variable $var1 verschiedene werte ein (auch außer '1' oder '2', die im beispiel ja gültig sind).
die kompliziertheit der variable $v3 ist nur durch php selbst begrenzt.
das ganze geht auch in klassen.
die anwendbarkeit ist zwar unbeschränkt, aber zugleich auch bedingt. es ist eher geeignet, gewisse codepassagen zu verschleiern (in nicht open source programmen), dass andere leute nicht ohne hirneinsatz draufkommen, was dort passiert. für dich privat musst du sowas immer sehr gut dokumentiert aufbewahren! nach gewisser zeit weißt auch du nicht mehr was du verschleiert hast ;o)
weitere stolpersteine sind die doppelten '$$'-zeichen!! da musst du sehr genau sein!!
@mator-kaleen: von eval sollte man die finger lassen. eine gute methode, das programm unsicher zu machen!
Beitrag zuletzt geändert: 10.4.2010 7:59:16 von czibere -
Warum möchtest du überhaupt so etwas machen, wenn ich mir dein Beispiel oben so ansehe, dann möchtest du, dass der Inhalt der Variablen zu einem Bezeichner kombiniert wird, um dann in die Kombination einen Wert zu schreiben.
Wieso benutzt du dann nicht einfach einen Array: $meinArray[$var][$zero]
Oder habe ich jetzt komplett missverstanden, was du eigentlich beabsichtigst? -
also ganz einfach
damit die variablen der $zero variable nach durchnummeriert werden nimm einfach:
$namevar = 'var'.$zero;
$$namevar = $_POST["var".$zero];
also wenn ich dein problem richtig verstanden hab, is das die lösung ;) -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage