如何从变量计算

时间:2013-08-28 23:45:58

标签: php calculator

<?php

// expression is in variable
$var = "1+2*3/4"

// and I want it to perform and show but calculated:
echo $var; // excepted: 2.25

?>

所以我在变量中有calc表达式,然后我需要计算。有可能吗?

2 个答案:

答案 0 :(得分:2)

方法是评估表达式。

echo eval('echo '.$var.';');

这给了我 2.5 bytheway ..这就是正确答案:)

请考虑eval(); 危险暴露给任何人,并且非常难以保护。

"echo 3+4; echo file_get_contents('index.php');"

eval()这是一个提交的字符串,我有PHP的源代码。可能包含你的数据库密码,我现在可以自由连接,并随心所欲地转储到我的屏幕上。我也可以把unlink('index.php');放在那里,这只是一种破坏性的。

答案 1 :(得分:1)

有一个名为eval的函数可以解决这个问题,但在使用它时应该采取很好的预防措施:

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

<?php

$var = eval("echo 1+2*3/4;");
echo $var;
// val is 2.5 (2*3/4 is calculated first, then 1 is added to the result)

$var = eval("echo (1+2)*3/4;"); 
echo $var; // val is 2.25
?>

有关为何需要括号的说明,请参阅http://en.wikipedia.org/wiki/Order_of_operations

最重要的是你需要确保发送给eval的字符串不包含任何不应该

的字符串

eval使用非常危险。你已被警告