将字符串格式的函数转换为计算
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 语句的表达式来获取你的计算。
我在 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 语句的表达式来获取你的计算。