Tom: Funktionen dynamisch zusammensetzen ?

Beitrag lesen

Hallo,

"eval is evil"[tm]
ok, $eval = "evil";  *notier*

eval führt leicht zu fehlern, ist rechenaufwendiger, und fast immer unnötig. solltest du nicht verwenden, wenn es _irgendwie_ anders geht.

Das sehe ich anders. Eval ist genial, wenn die Auswertungsfunktion z.B. selber in einer Datenbank steht. Das nennt man dann wohl auch objektorientiert, oder?

Man sollte nur die Funktion eval() nochmals selber in einer Hüll-Funktion verpacken, in der man genau die Übergabeparameter (Aufruf und Rückgabe) festlegt (Kapselung der Bezeichner). Das können dann natürlich wieder Arrays sein, damit die "Daten-Dynamik" nicht verloren geht.

Eval lädt beim Aufruf nämlich sämtliche Variablen, Anweisungen und Funktionen zusätzlich ins Script, ähnlich wie es include() tut. Die stehen dann bis zum Scriptende zur Verfügung. Wenn eine Funktion nun zum zweiten Mal durch eval() geladen (definiert) wird, dann kracht es.

Grüße

Tom