ChrisB: Wann greift eval(), wann werden Variablen ersetzt?

Beitrag lesen

Hi,

Das ist genau DIE Frage bei eval(), wann was ersetzt wird und wann die automatische Typumwandlung greift, und wann nicht.

Was ist unklar? Fuer mich stellt es sich ganz simpel so dar:

eval(irgendwas) ist ein Funktionsaufruf wie jeder andere auch.
Erst mal wird irgendwas als Ausdruck ausgewertet, und dann von der Funktion verarbeitet.

eval('$ergebnis = $aufgabe;');

  • der Ausdruck '$ergebnis = $aufgabe;' ergibt auch nach seiner Auswertung nach wie vor nur das Textliteral mit dem Inhalt $ergebnis = $aufgabe; - und wenn dieser Code ausgefuehrt wird, egal ob nun von eval oder nicht, dann erhaelt $ergebnis den Inhalt von $ausgabe, Bummsausfertig.

eval('$ergebnis = '.$aufgabe.';'); // oder
eval("$ergebnis = $aufgabe;");

  • hier ergibt der ausgewertete Ausdruck $ergebnis = 4+2+0+0; - und wenn das dann vom Parser ausgefuehrt wird, findet tatsaechlich eine Berechnung statt.

MfG ChrisB