计算字符串中的总和

时间:2011-03-17 10:02:04

标签: php

我有这样的字符串:$string = "a + b + c";。现在我想把字符串计算为总和。

例如:

$a = 10;
$b = 10;
$c = 10;
$string = "a + b + c";

echo "Result is ".$string;
output-> Result is 30

$string = "a + b * c";

echo "Result is ".$string;
output-> Result is 110


提前致谢

5 个答案:

答案 0 :(得分:3)

我曾经做过calculator script

  • 它解析计算并将每个数字和运算符放在一个堆栈中,reverse polish notation
  • 它通过执行堆栈上的所有操作来计算结果。

答案 1 :(得分:3)

您的问题可能已在StackOverflow上得到解答:

How to evaluate formula passed as string in PHP?

答案 2 :(得分:2)

这个问题的标准答案:

不要使用eval(特别是当你说明这是用户输入时)或通过编写自己的公式解析器重新发明轮子。

查看PHPClasses上的evalMath课程。它应该在一个安全的沙箱中做你要求的所有事情。

答案 3 :(得分:1)

字符串中的变量缺少美元符号。我为您编写并测试了一个脚本,将这些符号添加到变量中,然后使用函数eval()将字符串解析为PHP代码。

$a = 10;
$b = 10;
$c = 10;
$string = "a + b + c";

$result = eval('return ' . preg_replace('/([a-zA-Z0-9])+/', '\$$1', $string) . ';');
echo $result;

这将输出30

答案 4 :(得分:0)

你可以这样做:

$string = "$res = $a + $b + $c;";
eval($string)
echo($res);