Ankündigung

Einklappen
Keine Ankündigung bisher.

Variablennamen in Variablennamen???

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Variablennamen in Variablennamen???

    also ...
    Ich bin der Noob.
    und der Noob hat jetzt folgendes Prob:
    nur so als Beispiel (in Echt machen die Namen natürlich mehr sinn, würden jetzt außerhalb des Kontextes
    aber nur für Verwirrung sorgen)

    $ab_1 = "12345";
    $ab_2 = "13333";
    $ab_3 = "1234";
    $ab_4 = "243";

    $ergebnis = rand(1,4);

    so, achtung, und jetzt.... PROBLEM
    --------------echo $(ab_."$ergebnis") -----------------
    also wie ihr schon gemerkt habt, gibts da ne Zufallszahl...
    und variabelen die ab_"zahl" heißen, sozusagen
    und ich würde gerne darauf in Abhängigkeit zur Zufallszahl zugreifen,
    aber so wie ichs da oben geschrieben hab,
    damit ich nich jedes einzeln abfragen muss - das sähe dann so aus:

    if ($ergebnis == 1){
    echo $ab_1;
    }
    if ($ergebnis == 2){
    echo $ab_2;
    } ......usw.

    also ich hab schon alle möglichen Sachen ausprobiert, darunter waren U.A.:

    ab_."$ergebnis" //gibt die tollte Ausgabe "ab_1" aus oder "ab_2" oder "ab_3 oder "ab_4", abhängig vom Ergebnis;
    dachte ich mir "super, ist ja schonmal ein Anfang;
    denn mit
    $ab_."$ergebnis"
    müsste der das ja machen weil das entspräche ja dann $ab_1 / $ab_2 usw.
    ... nixda,
    natürlich sagt mir php "der Wert $ab_ is leer, also geb ich auch mal nix aus"
    und raus kommt nur die Zufallszahl, also nur $ergebnis, weil $ab_ ja leer is;
    also dachte ich es klappt vllt. mit
    $(ab_.$ergebnis) ... ja ok, kein Kommentar -.-
    ok, also ich arbeite noch nich lange mit php und deshalb trau ich mich auch mal zu fragen;
    wie kriegt man das hin?
    $."ab_".$ergebnis funzt auch net ...
    schade, oder?
    also, Blutiger Anfäger ersucht um Rat!

    PS: falls es noch net klar war: im oben angegebenen Beispiel sollte z.B. im Falle das $erg == 1 wäre, ausgegeben werden "12345"

  • #2
    Also PHP unterstützt variable Variablennamen, aber soweit ich weiss nicht in dieser Form! Folgendes ist definitiv möglich:
    PHP-Code:
    $name 'test';
    $
    $name 'noch einer';
    echo 
    $test//gibt "noch einer" aus. 
    Aber nur einen Teil des Variablennamen dynamisch zu machen, geht meines Wissens nach nicht. Und da ein Variablenname nicht mit einer Zahl beginnen darf (nach dem $), wird das mit deinem Vorhaben bissl schwierig.
    Warum machst du es dir nicht viel einfacher, definierst ein Array $ab mit den Eintragen bei den Indizes 0.....x und lässt deine rand von 0 bis x laufen und gibst es dann über $ab[$ergebnis] aus?

    Kommentar


    • #3
      Du kannst es theoretisch so machen:
      Code:
      echo ${'ab_'.$ergebnis};
      Siehe Manual: PHP: Variable Variablen - Manual

      Aber wie Montellese schon richtig angedeutet hat: Es ist sehr unschön und in so gut wie allen Fällen auch völlig unnötig. Nimm lieber ein Array...
      [URL="https://www.quizshow.io/"]Create your own quiz show.[/URL]

      Kommentar


      • #4
        Zitat von Montellese Beitrag anzeigen
        Warum machst du es dir nicht viel einfacher, definierst ein Array $ab mit den Eintragen bei den Indizes 0.....x und lässt deine rand von 0 bis x laufen und gibst es dann über $ab[$ergebnis] aus?
        Weil ichn dummer noob bin^^ :P
        ok, bin ich aber von alleine nich drauf gekommen, thx

        Kommentar


        • #5
          Selbsteinsicht ist der erste Schritt zur Besserung
          Ne is ja kein Problem, wenn man sich noch nicht so mit ner Programmiersprache auskennt, kann und darf einem das durchaus passieren! Dafür sind wir ja da.

          Kommentar

          Lädt...
          X