从字符串变量PHP中获取实际值

时间:2011-11-15 11:39:30

标签: php string

  

可能重复:
  how to evaluate formula passed as string in php?

我有一个像“10 * 0.1 + 800”这样的字符串我想用数字而不是字符串值来获得这个字符串的实际答案。

我已经尝试了floatval php功能,但没有运气。有什么想法吗?

3 个答案:

答案 0 :(得分:3)

您必须使用PHP的eval函数“评估”字符串:

eval('return ' . $string . ';');

但我真的只会这样做,如果你可以相信这个字符串。因为你在这里所做的确实是在执行PHP代码。如果你不相信这个字符串,这可能是一个安全漏洞。

另一种可能的选择是使用解析器。我相信,已经有任何可用于此任务的库。

答案 1 :(得分:1)

你可以尝试:

$string = "10*0.1+800";
$result = eval("return "+$string);

但要注意使用eval的安全风险!

答案 2 :(得分:0)

你可以简单地使用php的eval函数来评估字符串。

$str = "10*0.1+800"
eval('return ' . $str. ';');