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

Php 将字符串格式的函数转换为计算,php,laravel,string,calculation,Php,Laravel,String,Calculation,我正在用php编程,我有以下变量: $calculation='15-12' 是否有一个函数允许我将字符串转换为计算?此处可以使用eval()函数: $calculation = '15-12'; $result = eval('return '.$calculation.';'); echo $result; //outputs '3' 是的,在这种情况下可以使用eval表达式,但事实并非如此(El_Vanja提到)。最好将值转换为正确的类型并进行计算 eval场景 铸造类型 您可以使用e

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

$calculation='15-12'

是否有一个函数允许我将字符串转换为计算?

此处可以使用
eval()
函数:

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

echo $result; //outputs '3'

是的,在这种情况下可以使用
eval
表达式,但事实并非如此(El_Vanja提到)。最好将值转换为正确的类型并进行计算

eval
场景 铸造类型 您可以使用
eval()


请注意,此函数执行类似字符串的PHP代码,如果它包含特定的数学表达式,则会失败。在这种情况下,您需要自己解析字符串并进行计算,或者使用外部库。

@aspirinemaga的强制转换解决方案是我将采用的方法


如果它不总是减法(并且您希望避免使用eval()),那么您可以始终使用
strpos
来确定它是否是加法/减法/乘法,然后将表达式传递给switch语句以获得计算。

您有
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;