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 advanceYour 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);
精彩评论