我有这样的字符串:$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
提前致谢
答案 0 :(得分:3)
我曾经做过calculator script。
答案 1 :(得分:3)
您的问题可能已在StackOverflow上得到解答:
答案 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);