eval ('1+1') 在 JavaScript 中工作,但在 PHP 中不起作用

eval ('1+1') works in JavaScript but not in PHP

本文关键字:工作 PHP 不起作用 但在 eval JavaScript      更新时间:2023-09-26

我在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.")