eval('1 + 1')在JavaScript中运行,但在PHP中不运行

时间:2013-10-19 07:50:28

标签: javascript php eval

我在JavaScript中使用eval('1+1')没有任何问题但由于某种原因我无法在PHP中使用它。这是一个内部(非公开)网页,因此安全性不是问题。无论我如何编码,我都会看到500内部服务器错误。

我正在尝试在PHP文件中执行类似的操作:

$expression='1+1';

echo "eval($expression)";

PHP中的eval()函数与JavaScript等价函数不一样,或者实现起来可能不那么简单?

5 个答案:

答案 0 :(得分:1)

您有以下代码:

$expression='1+1';
echo "eval($expression)";

由于您引用了eval()语句,因此只需按字面打印eval(1+1)

eval()需要一个有效的表达式。

你可能正在寻找:

$expression='1+1'; 
echo eval("echo $expression;");

Demo!

答案 1 :(得分:1)

eval()函数必须具有有效php代码作为参数,请参阅此示例:

echo eval("return 1+1;");

答案 2 :(得分:0)

http://php.net/manual/en/function.eval.php

请注意,eval()函数非常危险,无论内部服务器与否,都要小心。

现在,PHP中的eval()允许执行PHP代码。你正在做的是回应执行PHP代码。

那说,试试这个:

$expression = "1+1";
echo eval("echo $expression;");

答案 3 :(得分:0)

eval()执行PHP代码,而不仅仅是任何数学表达式。 1+1不是有效的PHP代码表达式。所以给它适当的PHP表达式来执行。 像:

$expression='echo 1+1;'; 
eval($expression);
  

要评估的有效PHP代码。

<强> Reference

答案 4 :(得分:0)

试试这个,

eval('$expression =1+1;');
echo $expression;