Webstatt.org - Community seit 2006 - 2012 (2024?)

Wert einer Variable als PHP-Funktion verwenden

user-210
09.11.2006 17:53

Hallo nochmals,

Also, jetzt aber ein wirkliches Problem zwinkern

Ich möchte mit dem Wert einer Variable rechnen.
In einer GET-Variable steht z.B.: $a*$b

Jetzt möchte ich im weiteren Script genau mit diesem "Wert" rechnen, aber halt nicht als Wert sondern als Formel. Schwer zu erklären. Das Beispiel dürfte aber mein Problem zeigen:

 //?ab=$a*$b
$a = 4;
$b = 5;
$c = $a*$b //<-- so soll es nachher verwendet werden
$c= $_GET['ab']; //<-- so klappt logischerweise nicht, ...leider


Ist sowas irgendwie machbar? ..und wenn, wie? zwinkern

Sie haben soeben die Position Ihres Mauszeigers auf dem Monitor verändert. Bitte starten sie Windows neu damit die Änderungen wirksam werden.
user-303
09.11.2006 18:15

eval...sollte man aber mit großer vorsicht genießen, da man jeden php befehl ausführen kann

user-210
09.11.2006 18:28

ahja, stimmt. die funktion hab ich irgendwie total verdrängt.

allerdings funzt dat hier nich so wie ich mir das vorstelle, bzw. weiß net so genau wie ich mein vorhaben umsetzen soll. !?

//?formel=$x*$x

function mathfunc($x) {
$get = $_GET['formel'];
eval("return $get;"zwinkern;
}

echo mathfunc(5)

Sie haben soeben die Position Ihres Mauszeigers auf dem Monitor verändert. Bitte starten sie Windows neu damit die Änderungen wirksam werden.
Avatar user-182
09.11.2006 19:51

ohh gott...
bin mir net sicher, aba kann man das auch so iwie prüfen..?

function mathfunc($x) {
if(empty($x)) return false;
eval('$x = '.$x.';'zwinkern;
if(!is_numeric($x)) return false;
return $x;
}


aba wenn der geprüft hat, ob $x ne nummer is, ists wahrscheinlich schon zu spät, oder?

Seid ihr auch schon wix'r? xD
user-210
09.11.2006 19:58

Der Wert der Variable erhält er erst später.
Über $_GET oder $_POST wird erstmal der Wert $x*$x übertragen (naja, oder halt irgendwelche anderen Formeln, genau darum gehts ja).
Dieser "Wert" soll dann in einer Funktion als Formel verwendet werden.

Sie haben soeben die Position Ihres Mauszeigers auf dem Monitor verändert. Bitte starten sie Windows neu damit die Änderungen wirksam werden.