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 =
Your question may already have been answered here on StackOverflow:
How to evaluate formula passed as string in PHP?
you can do:
$string = "$res = $a + $b + $c;";
eval($string)
echo($res);
I once made a calculator script.
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
.
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.