если я возьму и сделаю что-то вроде этого:
$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() в строке 1
Не уверен, почему, если я печатаю echo $math, он идентичен тому, что у меня есть как $evalstr в первом примере. $p и $n на самом деле устанавливаются из переменных GET, но даже если я устанавливаю их вручную, как в примере, это не работает.
eval()
наvar_dump($math)
и сообщите нам, точно что он выводит. - person Ilmari Karonen   schedule 19.10.2011