Avatar billede egeriis Nybegynder
03. oktober 2003 - 18:43 Der er 2 kommentarer og
1 løsning

eval, pow og noget matematik

Hey, jeg arbejder med følgende funktion, som skal generere $count y-værdier udfra en funktion ($function).

function generate_y ($function, $count)
{

    for ($i=0; $i<$count; $i++)
    {

        $func = str_replace ("x", $i, $function)."<br />";
        $func = ereg_replace ("([0-9]+)\^([0-9]+)", "pow (\\1, \\2)", $func);

        $pkt[] = eval ($func);

    }

}

generate_y ("x^3+3*x^2-5", 10);


Problemet er at den kommer med parseerror på line 1 i eval'd code.

Når jeg prøver at køre det kode jeg putter i eval, ved en echo, virker det fint. Fx:


echo pow (0, 3)+3*pow (0, 2)-5;


Som giver det resultat funktionen der er givet til generate_y i ovenstående eksempel, når man giver den x-værdien 0.

Håber der er nogle behjælpelige personer herinde i dag :)
Avatar billede erikjacobsen Ekspert
03. oktober 2003 - 18:53 #1
Hvad laver det "<br />"; ??
Avatar billede erikjacobsen Ekspert
03. oktober 2003 - 19:03 #2
Du skal have en PHP-sætning, ikke et udtryk:


<?
function generate_y ($function, $count)
{

    for ($i=0; $i<$count; $i++)
    {

        $func = str_replace ("x", $i, $function);
        $func = ereg_replace ("([0-9]+)\^([0-9]+)", "pow (\\1, \\2)", $func);
        eval("\$pkt[] = $func;");

    }
print_r($pkt);
}

generate_y ("x^3+3*x^2-5", 10);

?>
Avatar billede egeriis Nybegynder
03. oktober 2003 - 19:29 #3
tak for hjælpen :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester