更新后的php eval()错误

时间:2014-10-21 19:55:42

标签: php eval

我似乎无法在这里找到错误,这段代码用来工作然后我更新了PHP,现在我得到了:

  

解析错误:语法错误,意外' 10' (T_LNUMBER)在C:\ wamp \ www \ a \ 1.php(15):eval()' d代码在第1行

$operande1 = 5;
$operande2 = 10;
$operation = "*";
calcul($operande1,$operande2,$operation);
function calcul($operande1, $operande2, $operation) {
                echo $operande1;
                echo $operande2;
                echo $operation;
                eval('$result=('.$operande1.")".$operation."(".$operande2.");");
}

感谢任何帮助

2 个答案:

答案 0 :(得分:1)

您将字符串与eval中的数字连接起来。将$operande1包裹在strval($operande1)内应解决此问题。我根本不建议使用eval,但它看起来像这样,另一种选择是简单地将数字作为字符串,通过在引号内初始化它们,即$operande1 = "10";

eval('$result=('.strval($operande1).")".$operation."(".strval($operande2).");");

注意 eval只是将值设置为变量$result,并且您要echo $result;来打印其值。

答案 1 :(得分:0)

我能够重现您发布的错误的唯一方法

  

解析错误:语法错误,意外“10”(T_LNUMBER)

是遗漏了=的标志。

$operande1  10;

给了我

  

解析错误:语法错误,意外“10”(T_LNUMBER)


http://3v4l.org/o1vDg

  

输出为5.4.0 - 5.6.2,php7 @ 20140507 - 20141001       解析错误:语法错误,第3行/ in / o1vDg中的意外“10”(T_LNUMBER)