将字符串格式的函数转换为计算

Converting a function in string format into calculation

我在 php 中编程,我有以下变量:

$calculation = '15-12';

有没有函数可以把字符串转换成计算?

这里可以使用eval()函数:

$calculation = '15-12';
$result = eval('return '.$calculation.';');

echo $result; //outputs '3'

是的,对于这种情况,您可以使用 eval 表达式,但它不是 recommended(@El_Vanja 提到的)。最好将值转换为正确的类型并进行计算。

eval场景

$calculation = '15-12';
$result = eval('return '.$calculation.';');
print $result; // output will be 3

铸造类型

$calculation = '15-12';

$values = explode('-', $calculation);

$result = intval($values[0]) - intval($values[1]);

print $result;

您可以使用 eval() https://www.php.net/manual/en/function.eval

注意这个函数执行的是类似PHP的字符串代码,如果里面有具体的数学表达式,会失败。在这种情况下,您需要自己解析字符串并进行计算或使用外部库。

@aspirinemaga 的铸造解决方案是我会采用的方法。

如果它并不总是减法(并且你想避免使用 eval())那么你总是可以使用 strpos 来确定它是否是 adding/subtracting/multiplying 然后通过它是一个 switch 语句的表达式来获取你的计算。