phpbar.de logo

Mailinglisten-Archive

[php] Eval() bei Math. Gleichungen

[php] Eval() bei Math. Gleichungen

Norbert Pfeiffer php_(at)_phpcenter.de
Sat, 26 Oct 2002 21:49:17 +0200


Hi Andreas,

das geht ganz 'easy' mit eval, also z.B.: eval($term);

Du musst halt nur darauf achten, dass $term praktisch
ein voll funktionsfaehiges Script enthaelt. Natuerlich
ohne '<?php' und '?>' am Anfang und Ende ... ;-)

> $term = '$x*$x-4';

hier fehlt die komplette linke Seite der Befehlszeile
UND das Semikalon am Ende. Mehr als eine Fehlermeldung
wird dabei nicht herauskommen ...

<PRE><?php
$term = '$Y = $X * $X - 4;';
for ($X = -3; $X <= 3; $X += 0.1)
    {eval($term);
     if ($Y == 0)
        {echo 'X = '.$X.'  bei Y = '.$Y;
         }
    }
?></PRE>

DAS laeuft fehlerfrei durch, zeigt aber auch nix an.
WEIL:
Du denkst im Dezimalsystem, PHP rechnet binaer:

<PRE><?php
$term = '$Y = $X * $X - 4;';
$limes = 1 / 1000000;
for ($X = -3; $X <= 3; $X += 0.1)
    {eval($term);
     if (abs($Y) < $limes)
        {echo 'X = '.sprintf('% 5s', number_format($X,1,',','.'));
         echo '  bei Y = '.sprintf('% 7s', number_format($Y,3,',','.'));
         echo ' = '.sprintf('% 23s', $Y)."\n";
         }
    }
?></PRE>
Jetzt kommt die Ausgabe wie geplant(gewuenscht).


m. b. G. Norbert
_____________________
normal:  02292-681769
Notruf:  0177-2363368
---------------------
e.o.m.


php::bar PHP Wiki   -   Listenarchive