Shalom!
Hm, anscheinend liegt der Fehler in meinem if-Konstrukt und ich verlange da Unmögliches. Ein
var_dump (eval("$a$b$c$d$e;"));
liefert mir NULL.
Also geht das so wie ich dachte gar nicht.
Wenn ich es richtig verstehe, liefert eval() das Ergebnis nur zurück, wenn es ausdrücklich dazu aufgefordert wird:
"As of PHP 4, eval() returns NULL unless return is called in the evaluated code, in which case the value passed to return is returned. If there is a parse error in the evaluated code, eval() returns FALSE and execution of the following code continues normally. It is not possible to catch a parse error in eval() using set_error_handler()."
(http://de.php.net/eval)
Vielleicht klappt es mit var_dump(eval("return $a$b$c$d$e;"));
(ungetestet)?
Eben. Es gibt doch bestimmt eine "konventionelle" Möglichkeit, mein Vorhaben unter PHP zu realisieren.
Nur wie? Meine Idee mit eval() ist gescheitert, hat jemand einen Tipp?
Die Frage ist, wie konventionell Dein Vorhaben ist. ;-)
Aber Deine Grammatik ist doch eigentlich sehr einfach, oder? Nach dem, was Du bisher geschrieben hast, berücksichtigst Du ja nicht einmal Klammern. Dann reicht eventuell sogar ein regulärer Ausdruck.
Stelle erst einmal genau klar, welche Ausdrücke gültig sind:
- Zahlen mit und ohne Vorzeichen
- Zahl Operator Zahl
- Zahl Vergleichsoperator Zahl Operator Zahl
- Zahl Operator Zahl Vergleichsoperator Zahl
- ... ?
Wenn Du so eine Liste hast, findet sich bestimmt recht schnell eine gute Möglichkeit, die Dinger zu erkennen.
Viele Grüße vom Længlich