eval() richtig verwenden
timon peters
- php
0 globe0 timon peters0 globe
1 AllesMeins
Hallo erstmal;
Ich habe da ein problem bei der verwendung der funktion eval();
ich habe eine funktion geschrieben, die namen in mathemathische gleichungen umwandelt (zb. übergebe ich der funktion den wert 'der affe' und bekomme als rückgabe '1* 1* 1* 30 * 0.5* 0.3* 0.3* 1'). nun weiss ich leider nicht, wie man diese gleichung, die als string vorliegt, richtig ausrechnet. ich habe gelesen, dass man dafür die funktion eval() verwenden muss, habe aber nirgends gefunden, wie man das genau machen soll.
Es wäre nett, wenn mir da jemand helfen könnte.
danke
Timon
n'abend,
Hallo erstmal;
Ich habe da ein problem bei der verwendung der funktion eval();
ich habe eine funktion geschrieben, die namen in mathemathische gleichungen umwandelt (zb. übergebe ich der funktion den wert 'der affe' und bekomme als rückgabe '1* 1* 1* 30 * 0.5* 0.3* 0.3* 1'). nun weiss ich leider nicht, wie man diese gleichung, die als string vorliegt, richtig ausrechnet. ich habe gelesen, dass man dafür die funktion eval() verwenden muss, habe aber nirgends gefunden, wie man das genau machen soll.
im Handbuch zu schauen wäre ein Anfang: eval()
ansonsten müsste folgendes etwa das tun, was du erwartest:
$ergebnis = 0;
$rechnung = '1* 1* 1* 30 * 0.5* 0.3* 0.3* 1';
eval("\$ergebnis = " . $rechnung . ";");
weiterhin schönen abend...
vielen dank ...
ich hatte zwar schon im handbuch geschaut, war aber daraus nicht so recht schlau geworden. jetzt hab ich verstanden und den sinn kapiert.
n'abend,
ich hatte zwar schon im handbuch geschaut, war aber daraus nicht so recht schlau geworden. jetzt hab ich verstanden und den sinn kapiert.
anmerken sollte man aber noch: übertreib es mit eval() nicht. Es gibt wenige berechtigte Anwendungsfälle für eval(). Überprüfe *genau* was du eval() zum Fraß vor wirfst, sonst wird es zu drEvil() und birgt große Gefahren.
weiterhin schönen abend...
Hi,
kann mir kaum vorstellen dass du dir das eval() nicht einsparen kannst. Eigentlich müsstest du doch beim erstellen der Gleichung die Zahlenwerte bereits haben und kannst sie bereits da aufmultiplizieren.
Marc