我在JavaScript中使用eval('1+1')
没有任何问题,但由于某种原因,我无法让它在PHP中工作。这是一个内部(非公共)网页,因此安全性不是问题。无论我如何编码,我都看到500内部服务器错误。
我正在尝试在PHP文件中做这样的事情:
$expression='1+1';
echo "eval($expression)";
PHP 中的 eval()
函数是否与 JavaScript 等效函数不同,或者实现起来可能不那么简单?
您有以下代码:
$expression='1+1';
echo "eval($expression)";
由于您引用了eval()
语句,因此它只会按字面意思打印eval(1+1)
。
eval()
需要一个有效的表达式。
您可能正在寻找:
$expression='1+1';
echo eval("echo $expression;");
演示!
eval() 函数必须具有有效的 PHP 代码作为参数,请参阅以下示例:
echo eval("return 1+1;");
eval()
执行PHP代码,而不仅仅是任何任意数学表达式。 1+1
不是有效的 PHP 代码表达式。所以给它适当的PHP表达式来执行。喜欢:
$expression='echo 1+1;';
eval($expression);
要评估的有效 PHP 代码。
参考
试试这个,
eval('$expression =1+1;');
echo $expression;
http://php.net/manual/en/function.eval.php
请注意,eval()
功能非常危险,无论内部服务器与否,都要小心。
现在,PHP 中的eval()
允许执行 PHP 代码。您正在做的是回显执行 PHP 代码。
也就是说,试试这个:
$expression = "1+1";
echo eval("echo $expression;");
$expression = "1+1";
$result = " return (".$expression.")