在php中使用eval()内的函数

时间:2015-10-21 21:06:50

标签: php mysql arrays eval stripslashes

double KE = 1.0/2.0*m*v*pow(KE,2);

我尝试了不同的方法但是我不能让eval()来输出输出。我跟着一个相关的帖子得到了这个,但它没有正常工作。

$answra[$j] = '$qry['.$answers[$j].']';
eval("echo stripSlashes($answra[$j]); ");

任何更简单的替代方案?

2 个答案:

答案 0 :(得分:1)

(我假设你有理由使用eval,不鼓励,不管怎样,让我给你解决方案)

好吧,我们有这个错误的示例:

$string = "asdfg";
eval("echo stripSlashes($string); ");

这不起作用,因为

中使用的字符串
eval("echo stripSlashes($string); ");

结果

echo stripSlashes(asdfg);

你可以看到asdfg不再是真正的字符串了。

你需要做的是像这样转义变量:

eval("echo stripSlashes(\$string); ");

所以你的口译员会知道不要考虑变量。

<强> TL; DR:

这种反斜杠应该可以解决问题:

$answra[$j] = '$qry['.$answers[$j].']';
eval("echo stripSlashes(\$answra[$j]); ");

答案 1 :(得分:0)

使用单引号而不是双引号,以防止变量在字符串中包含时展开。在解析参数时,它将被eval扩展。

eval('echo stripSlashes($answra[$j]); ');