Tschak: variablenzugriff in schleifen

Ich habe folgendes (wahrscheinlich sehr einfaches) Problem. Im folgenden Quelltext will ich die Ergebnisse von 72 Variablen in eine .txt speichern. Sollte auch klappen aber ich weiss nicht wie die korrekte Syntax ist um auf diese zuzugreifen.

<?

$file=fopen("test.txt","ab+");
if($file)
{
  for ($i=1;$i<=71;$i++){
    fputs($file, $frage$i ); //hier ist das problem mit $frage$i
  }
  fputs($file, $frage72."\n");
}
fclose($file);
?>

  1. Ich habe folgendes (wahrscheinlich sehr einfaches) Problem. Im folgenden Quelltext will ich die Ergebnisse von 72 Variablen in eine .txt speichern. Sollte auch klappen aber ich weiss nicht wie die korrekte Syntax ist um auf diese zuzugreifen.

    <?

    $file=fopen("test.txt","ab+");
    if($file)
    {
      for ($i=1;$i<=71;$i++){
        fputs($file, $frage$i ); //hier ist das problem mit $frage$i
      }
      fputs($file, $frage72."\n");
    }
    fclose($file);
    ?>

    Tja, das Problem ist wahrscheinlich wirklich ganz einfach: du versuchst mit $frage$i einen Variablennamen zu erzeugen, der dann die Form "frage1" etc. hat. Dies ist meines Wissens so nciht möglich.

    Zwei lösungsvorschläge:

    Um den Variablennamen so zu erzeugen, wie du ihn gerne hättest, kannst du in eine Variable den Kompletten namen der neuen Variable schreiben:

    <?
    $i = 1;
    $frage = "frage".$i;

    ?>

    Dann hat die variable $frage den Wert "frage1". Dies kannst du nun als Variablennamen einsetzen:

    <?
    fputs ($file, $$frage);
    ?>

    Man beachte die beien $$ vor "frage"!
    Dadurch wird die Variable mit dem Namen aufgerufen, der dem wert von $frage entspricht, also hier "$frage1".

    Mein persönlicher Vorschlag wäre, das kanze nicht in Variablen sondern in ein Array zu schreiben. Du speichst di Variaben also nach dem Muster:

    <?
    $frage[$i] = "xy";
    ?>

    und ersetzt dann dein $frage$i einfach durch $frage[$i].
    So mache ich es bei mir, und das hat immer wunderbar geklappt.

    viel erfolg und keep on goin'
    (dauert ein bischen aber dann ist PHP wunderbar)

    Heizer

    1. Tja, das Problem ist wahrscheinlich wirklich ganz einfach: du versuchst mit $frage$i einen Variablennamen zu erzeugen, der dann die Form "frage1" etc. hat. Dies ist meines Wissens so nciht möglich.

      ${"frage".$i}

      :)

      Ludwig

      1. ${"frage".$i}
        Ludwig

        Danke, genau den Zugriff brauchte ich....bei nem http-request bringt mir ein Arrayzugriff ja nichts...
        gruss:
        tschak

      2. Tja, das Problem ist wahrscheinlich wirklich ganz einfach: du versuchst mit $frage$i einen Variablennamen zu erzeugen, der dann die Form "frage1" etc. hat. Dies ist meines Wissens so nciht möglich.

        ${"frage".$i}

        :)

        Tja, manchmal denke ich einfach zu kompliziert. Danke, war auch für mich hilfreich.

        Heizer