开发者

Calculate a sum in a string

I have string like this: $string = "a + b + c";. Now I would like to calculate the string as sum.

For example:

$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

T开发者_C百科hanks in advance


Your question may already have been answered here on StackOverflow:

How to evaluate formula passed as string in PHP?


I once made a calculator script.

  • It parses the calculation and puts each number and operator on a stack, in reverse polish notation.
  • It calculates the results by executing operations all operations on the stack.


My standard answer to this question whenever it crops up:

Don't use eval (especially as you're stating that this is user input) or reinvent the wheel by writing your own formula parser.

Take a look at the evalMath class on PHPClasses. It should do everything that you're asking, in a safe sandbox.


The variables in your string are missing the dollar signs. I wrote and tested a script for you that adds these signs to the variables and then parses the string as PHP code using the function eval().

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

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

This will output 30.


you can do:

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜