Вычислить сумму в строке

У меня строка такая: $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 

заранее спасибо

Переменные в вашей строке не имеют знака доллара. Я написал и протестировал скрипт для вас, который добавляет эти знаки к переменным, а затем анализирует строку как PHP-код, используя функцию eval() .

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

Это выведет 30 .

На ваш вопрос, возможно, уже был дан ответ на StackOverflow:

Как оценить формулу, переданную как строку в PHP?

Однажды я сделал калькулятор калькулятора .

  • Он анализирует вычисление и помещает каждое число и оператор в стек, в обратной полях .
  • Он вычисляет результаты, выполняя операции со всеми операциями в стеке.

Мой стандартный ответ на этот вопрос всякий раз, когда он возникает:

Не используйте eval (особенно, поскольку вы заявляете, что это пользовательский ввод) или изобретайте колесо, написав собственный анализатор формул.

Взгляните на класс evalMath на PHPClasses. Он должен делать все, что вы просите, в безопасной песочнице.

ты можешь сделать:

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