Ankündigung

Einklappen
Keine Ankündigung bisher.

eval für arrays

Einklappen

Neue Werbung 2019

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

  • eval für arrays

    gibt es die möglichkeit die funktion eval() auch für ein array anzuwenden.

    z.b.
    PHP-Code:
    <?php
    $a 
    = <<<END

    <table>
     <tr>
      <td>
       
    $text[0]$text[1]
      </td>
     </tr>
    </table>

    END;

    $text[0] = "das ist ein";
    $text[1] = "test";

    eval (
    "\$a = \"$text\";");
    echo 
    $a;
    ?>
    derzeit gibt es einen fehler (Array).
    gruss sys


  • #2
    Wie sagt man so schön - eval ist evil - siehe z.B. phpBB ^^ ...
    Es gibt kein Fehler, eval macht hier nur was du sagst. Was willst du denn mit deinem Code erreichen?

    Kommentar


    • #3
      Was willst du denn mit deinem Code erreichen?
      Vermutlich nichts sinnvolles, halt nur rumprobieren ...

      Kommentar


      • #4
        Wie's ausschaut, soll per "eval()" der Variablen $a der Inhalt von $text zugewiesen werden. Da es sich bei $text um ein Array handelt, müsste man einen Index dazupappen. Da dies nicht der Fall ist, wird an $a der Typ "Array" übergeben und ausgegeben ...

        Mal anders :

        Code:
        eval ('$a=$text[0];');
        Weist $a "das ist ein" zu.

        Aber welchen Sinn ...?
        ToolsTool - Online (SEO-)Tools im Browser gleichzeitig starten ...

        Kommentar


        • #5
          hallo

          nur rumprobieren würde ich nicht sagen, die idee ist eben die, dass man eine ausgabe variable definiert und in einer schleife per eval einfach die werte zuweist. so liesse sich z.b. die ausgabe in einem gästebuch o.ä. vereinfachen. $a neu definieren und die ausgabe sieht vollkommen anders aus, ohne sonst am code rumfummeln zu müssen.

          vielleicht verstehe ich auch die funktion als solche nicht richtig und eval soll für ganz was anderes verwendet werden, ich verstehe das nur so, dass es mit eval z.b. nicht notwendig ist die variable $a aus meinem beispiel oben immer wieder neu zu definieren.

          in meinem beispiel oben könnte ich nun wieder $text neu definieren und per eval der ausgabevariablen $a den inhalt zuweisen. so erpare ich mir z.b. ein permanentes include einer ausgabedatei, was ja unter anderem geschwindigkeits vorteile ergeben müsste. mit einer einfachen variablen funktioniert das ja auch. also in etwa so:

          PHP-Code:
          <?php
          $a 
          = <<<END

          <table>
           <tr>
            <td>
             
          $text
            </td>
           </tr>
          </table>

          END;

          $text "das ist ein test";
          eval (
          "\$a = \"$text\";");
          echo 
          $a

          $text "das ist ein zweiter test";
          eval (
          "\$a = \"$text\";");
          echo 
          $a;

          $text "das ist ein dritter test";
          eval (
          "\$a = \"$text\";");
          echo 
          $a
          ?>
          und so weiter. meine frage ist nur, ob es eine funktion gibt, die genau wie eval aber mit einem array arbeiten kann.
          gruss sys

          Kommentar

          Lädt...
          X