我在JavaScript中使用eval('1+1')
没有任何问题但由于某种原因我无法在PHP中使用它。这是一个内部(非公开)网页,因此安全性不是问题。无论我如何编码,我都会看到500内部服务器错误。
我正在尝试在PHP文件中执行类似的操作:
$expression='1+1';
echo "eval($expression)";
PHP中的eval()
函数与JavaScript等价函数不一样,或者实现起来可能不那么简单?
答案 0 :(得分:1)
您有以下代码:
$expression='1+1';
echo "eval($expression)";
由于您引用了eval()
语句,因此只需按字面打印eval(1+1)
。
eval()
需要一个有效的表达式。
你可能正在寻找:
$expression='1+1';
echo eval("echo $expression;");
答案 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;