Calculate a sum in a string

前端 未结 5 879
我寻月下人不归
我寻月下人不归 2020-12-20 05:05

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 =          


        
相关标签:
5条回答
  • 2020-12-20 05:16

    Your question may already have been answered here on StackOverflow:

    How to evaluate formula passed as string in PHP?

    0 讨论(0)
  • 2020-12-20 05:25

    you can do:

    $string = "$res = $a + $b + $c;";
    eval($string)
    echo($res);
    
    0 讨论(0)
  • 2020-12-20 05:32

    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.
    0 讨论(0)
  • 2020-12-20 05:35

    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.

    0 讨论(0)
  • 2020-12-20 05:37

    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.

    0 讨论(0)
提交回复
热议问题