<?php
function compute($input){
$compute = create_function('', 'return '.$input.';');
return 0 + $compute();
}
$test = array(
'5 + 5',
'3 +( 2 * 3)',
'(3 + 2) * 3',
'3 + 2 * 3',
'(3-2-1)*3'
);
foreach( $test AS $string){
echo compute( $string);
echo "<br />";
}
http://sandbox.onlinephpfunctions.com/code/61ee53b5477d7450ff89b15e4f08
Приведенный выше код устарел в PHP 7.2. Большинству других людей, у которых была эта проблема, было сказано использовать анонимную функцию. Но в данном случае я не знаю, как им пользоваться.
eval
- это не то, что вы хотите делать легкомысленно, но, поскольку вы уже делаете это в основном, вы можете продолжать использовать его, я думаю :) - person Nanne   schedule 18.07.2018eval()
- это то, что вы должны здесь использовать, учитывая, что он не содержит пользовательского ввода. В противном случае можно было бы использовать слегка сложное утверждение регулярного выражения. - person mario   schedule 18.07.2018