phpbar.de logo

Mailinglisten-Archive

[php] Operand verarbeiten

[php] Operand verarbeiten

Lutz Zetzsche Lutz.Zetzsche at sea-rescue.de
Mon Jul 10 21:48:03 CEST 2006


Hi Martin,

Am Montag, 10. Juli 2006 10:34 schrieb Martin Kutter:
> Hallo Liste
>
> Für einen einfachen MATHCHA (anstelle Bilder-CAPTCHA eine einfache
> Rechenaufgabe) möchte ich Rechenaufgaben erstellen.
> Dabei soll der Oparand nicht immer derselbe sein, sondern 'random'
> erzeugt werden (z.B. '+', '*' etc.).
>
> Anstelle eines switch() (jede Rechenoperation in einem case), hat
> mich die 'dynamische' Verarbeitung eines 'erzeugten' Operanden (aus
> einem Array) nicht losgelassen.
> Doch leider funktioniert's nicht :(
>
> [code Bsp.]
> // Array Operand
> $aOperand = array( '+', '*' );
>
> // Count Array items and sub 1
> $numOperand = count( $aOperand ) - 1;
>
> // Create random Key
> $n = rand( 0, $numOperand );
>
> // Generate Arithmetic Problem
> $result = $int1 . $aOperand[ $n ] . $int2;
>
> ...
> [/code]

es gibt z.B. folgende Möglichkeiten:

1.
eval('$result = '.$int1.$aOperand[ $n ].$int2.';');
echo $result;

2.
if ($aOperand[ $n ] == '+') {
  $result = $int1 + $int2;
} else
if ($aOperand[ $n ] == '*') {
  $result = $int1 * $int2;
}
echo $result;

Variante 1. mit eval() würde ich nur wählen, wenn die Variablen nicht 
von außen gesetzt werden können, zumindest nicht der Operand. Mit 
intval() könntest Du $int1 und $int2 notfalls zwangskonvertieren. :-)


Viele Grüße

Lutz

php::bar PHP Wiki   -   Listenarchive