Hallo,
was willst du denn eigentlich bezwecken? Wenn die Funktionen „nach Bedarf“ eingefügt werden sollen, kannst du die Bibliothek doch auch modularisieren und dann nur das entsprechende Modul nach Bedarf einbinden. Oder verstehe ich das Anliegen falsch?
Hast du schon call_user_func ausprobiert? Das ist deutlich sicherer als evil eval.
Nein, dachte bisher die wären nur für eigene Funktionen(aus dem Namen geschlossen). Aber nach deinem Hinweis hab ich das probiert und geht tatsächlich ebenso mit Standardfunktionen.
Ich würde call_user_func() auch gerne nutzen, tue mich da aber im Moment schwer, weil mein Funktionsaufruf keine unbegrenzte Anzahl Argumente zulässt und wenn ich das als einen String übergebe, bleibt wohl doch wieder nur eval. Oder hast Du dafür auch eine Lösung?
return call_user_func ('substr',$arg); erzeugt somit einen Fehler beim Aufruf, weil $arg natürlich nur als ein Argument zählt.
echo masterfunc('substr',"'abcdefghijklmnop',3,5");
Das kommt darauf an, was du erwartest. Dein eval oben führt substr schon aus, speichert das Ergebnis allerdings nirgends oder gibt es zurück. Wenn du
$str
mit'return '
anfangen lässt, hast eval einen Rückgabewert, den du mit einem weiterenreturn
aus masterfunc zurückgeben kannst.
So einfach kanns manchmal sein und ich komme doch nicht drauf. Habe zwar mit returnwerten experimentiert nur leider nicht in dieser Kombi, vielen Dank klappt super.
Gruss
Mike