Sebastian Becker: Variable Variable

Hallo,

ich möchte Variablennamen innerhalb einer Funktion dynamisch erzeugen: $item1, $item2, $item3, $item4, $item5 ...

Dazu hatte ich an eine Lösung in etwa dieser Art gedacht:

${item$number}

So scheint es aber nicht zu funktionieren. Wie muß denn die richtige Syntax aussehen?

Danke für alle Hinweise, Grüße,

Sebastian

  1. Hallo Sebastian!

    So scheint es aber nicht zu funktionieren. Wie muß denn die richtige Syntax aussehen?

    Das liest Du am besten direkt im PHP-Manual nach.
    Lesetip: http://de2.php.net/manual/en/language.variables.variable.php
    Außerdem kannst Dir auch mal http://dclp-faq.de/q/q-variable-variablen.html durchlesen.

    MfG
    Götz

    --
    Losung und Lehrtext für Samstag, 31. Januar 2004
    Wie sich ein Vater über Kinder erbarmt, so erbarmt sich der Herr über die, die ihn fürchten. (Psalm 103,13)
    Weil ihr nun Kinder seid, hat Gott den Geist seines Sohnes gesandt in unsre Herzen, der da ruft: Abba, lieber Vater! (Galater 4,6)
    (http://www.losungen.de/heute.php3)
    1. Das liest Du am besten direkt im PHP-Manual nach.
      Lesetip: http://de2.php.net/manual/en/language.variables.variable.php

      Das mit den Arrays:
      ${$var}[0]
      funktioniert nicht!

  2. Hallo.

    Dazu hatte ich an eine Lösung in etwa dieser Art gedacht:

    ${item$number}

    So in der Art geht das auch. Nur so:
    $var_ = "item".$number;
    $var = ${$var_};
    MfG,
    Freddy

    1. Hallo, Freddy,

      meine Skript sieht jetzt in etwa so wie unten aus.
      Leider sind alle ausgegebenen Variablen leer ...
      Any ideas?

      Danke, Grüße,

      Sebastian

      ---------------------------------------------------------------

      $item2 = 'Description';
      $item3 = 'Technical Data';
      $item4 = 'Download';

      $this_page = $_SERVER['PHP_SELF'];
      $item2_link = $this_page.'?part=2';
      $item3_link = $this_page.'?part=3';
      $item4_link = $this_page.'?part=4';

      function tabItem($number)
      {
      $item_number = 'item'.$number;
      $item_link_number = 'item'.$number.'_link';
      global ${$item_number},${$item_link_number};
      echo "<td id="item$number"><a href="${$item_link_number}">${$item_number}</a></td>\n";
      }

      tabItem('2');
      tabItem('3');
      tabItem('4');

  3. hi,

    verwende doch einfách ARRAYs! Das ist ein Variable, die mehrere Variablen in sich selber speichern kann und diese auch nummeriert.

    1. Hallo, Cursed Dr@gon,

      verwende doch einfách ARRAYs! Das ist ein Variable, die mehrere Variablen in sich selber speichern kann und diese auch nummeriert.

      war eigentlich naheliegend und so mache ich es jetzt auch. Aber die Sache mit den variablen Variablen hätte mich doch interessiert ...

      Nach der Umstellung bekomme ich jetzt natürlich eine neue Fehlermeldung:

      Cannot use a scalar value as an array

      Wie man's auch macht ...

      Grüße,

      Sebastian Becker

      1. Hi,

        du kannst auch folgendes machen:
        eval("item".$number." = 123;");

        Schöne Grüße,
        Julian