kostenloser Webspace werbefrei: lima-city


eval()'d code(1) : eval()'d code on line 1

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    exaction

    exaction hat kostenlosen Webspace.

    Heyho,

    Und zwar habe ich mal ein Spiel aufgesetzt und bekomme immer denn Fehler
    "eval()'d code(1) : eval()'d code on line 1"

    Hab auch schon gegoogelt aber gefunden habe ich nicht wirklich was.

    Was bedeutet dieser Fehler ?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Lass dir mit
    echo()
    den Programmcode ausgeben der sonst per
    eval()
    ausgeführt wird... poste das dann hier, außer du findest den Fehler selbst.

    Warum verwendest du überhaupt eval?
  4. Auf deiner HP stimmt außerdem die datenbankverbindung nicht, wenn du es versuchst hier auszuführen.

    Fühlst du über eval irgendeine datenbankabfrage durch?




    hackyourlife schrieb:


    Warum verwendest du überhaupt eval?


    bei rekursiven funktionen macht ein eval durchaus sinn, um die formel erst zusammen zu schustern und dann auszuführen. so verringert man rundungstoleranzen.

    Beitrag zuletzt geändert: 6.7.2012 16:44:32 von sebulon
  5. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    sebulon schrieb:
    hackyourlife schrieb:
    Warum verwendest du überhaupt eval?
    bei rekursiven funktionen macht ein eval durchaus sinn, um die formel erst zusammen zu schustern und dann auszuführen. so verringert man rundungstoleranzen.
    Wenn du eine lange Formel hast und sie von PHP berechnen lässt wird trotzdem gerundet... Grund: PHP kann nicht mit beliebiger Genauigkeit Zahlen verarbeiten (zumindest nicht als Standard, mit bc funktioniert das für ganze Zahlen).
    Intern müssen die Ergebnisse genauso zwischengespeichert werden, und dabei wird gerundet. Ob du jetzt selbst sagst wo zwischengespeichert wird oder nicht sollte keinen Unterschied machen...

    eval ist fast nie eine gute Lösung, da das ein extremes Sicherheitsrisiko darstellt. Auf lima-city ist eval übrigens gesperrt ;-)

    Wenn du den Fehler finden willst musst du den Code der mit eval ausgeführt werden sollte ausgeben und wenn du willst das sich das wer von uns anschaut hier posten...
  6. ich glaube, du hast nciht ganz verstanden, was ich meinte.

    bei rekursiven funktionen ist es von vornherein nie genau festgelegt, wie oft bestimmte programmteile Aufgerufen werden, sondern es resultiert aus der programmausführung. wenn du eine berechnung hast, die 20 mal ausgeführt wird, wobei das ergebnis je weiter verarbeitet wird (PHP rundet glaube ich standardmäßig auf 20 stellen nach dem Komma), dann wirst du bei 100 ausführungen bereits unterschiede vor dem Komma sehen können, falls es sich nciht gerade um addition oder subtraktion handelt...


    nimm mal als beispiel die folgende Zinseszins-Situation:


    vermehre die Zahl 1 über 200 Abrechnungszeiträume um 1.25% (Absolut 1.00125) das ist heutzutage ein realistischer Zinssatz. 200 Zinsperioden ist zwar bereits unrealistisch, aber hier gehts ja nciht um das beispiel, sondern um den Fakt an sich

    Die Formel dazu lautet:

    k*(Absoluter_zinssatz)^(Anzahl_zinsperioden)

    in unserem fall 1*/{200}1.00125 ({200} steht für 200 wiederholungen)


    du kannst jetzt 200 mal über eine while schleife eine funktion aufrufen, die dir das ergebnis je verändert, du kansnt aber auch einen String zusammensetzen und er rechnet das mit einem mal aus. probier das mal aus und du solltest unterschiede sehen.
  7. 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!