если я возьму и сделаю что-то вроде этого:
$p = 10;
$n = 3;
$evalstr = "\$f = 0.99 + ((.025 * \$p) * \$n);";
eval($evalstr);
echo $f;
У меня отображается 1.74, без ошибок все нормально, но когда у меня есть таблица mysql, которая содержит эти уравнения (для целей данного примера, это точно такое же уравнение) ... примерно так:
$p = 10;
$n = 3;
while ($result = mysql_fetch_assoc($results)) {
$math = $result['math'];
//at this point $math = "\$f = 0.99 + ((.025 * \$p) * \$n);"
eval($math);
}
Я получаю ошибку Parse: синтаксическая ошибка, неожиданный T_VARIABLE, ожидающий T_STRING в ajax \ getprices.php (30): eval () 'd код в строке 1
Не знаю, почему, если я выведу echo $ math, оно идентично тому, что у меня было в качестве $ evalstr в первом примере.$ p и $ n фактически устанавливаются из переменных GET, но даже если я устанавливаю их вручную, как в примере, это не работает.