kostenloser Webspace werbefrei: lima-city


Name einer Variable aus Variablen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    squid

    Kostenloser Webspace von squid

    squid hat kostenlosen Webspace.

    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?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. <?php
    $variable="2";
    $hauptvariable="$test";
    $ausgabe=".$hauptvariable."".$variable."";

    echo $ausgabe;
    ?>



    Habe es nicht getestet, sollte aber so gehe glaube ich.



    Lg
    EpSys
  4. m**********n

    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
  5. Stop!
    Den Inhalt einer Variable als Variablennamen zu nutzen funktioniert viel einfacher!
    $varname = "test";
    $$varname = "Hallo";
    echo $test;
  6. 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
  7. m**********n

    @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.
  8. @squid
    Gibt es irgendwie eine Möglichkeit, dass man dafür sorgen kann, dass der NAME einer Variable aus Variablen besteht
    ja das geht:
    // das sind deine vordefinierten variablen
    $_12  = "das ist var. '\$_12' (k&ouml;nnte aber auch wurst drin sein)";
    $_21  = "das ist var. '\$_21' (auch hier k&ouml;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>";
    }
    ein sehr triviales beispiel. kannst so weit komplizieren, dass niemand mehr sagen kann was in der variable ist (auch du nicht!) ;o)
    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
  9. taboreasrecken

    Kostenloser Webspace von taboreasrecken

    taboreasrecken hat kostenlosen Webspace.

    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?
  10. 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 ;)
  11. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!