<分区>
我的意思是将此:'1+1'
转换为:1+1
。
我找到了 this answer ,这表示您可以对字符串执行数学运算,如下所示:
$num = "10" + 1;
但这里不一样,因为数学运算符在字符串内部。
标签 php parsing eval evaluation
<分区>
我的意思是将此:'1+1'
转换为:1+1
。
我找到了 this answer ,这表示您可以对字符串执行数学运算,如下所示:
$num = "10" + 1;
但这里不一样,因为数学运算符在字符串内部。
最佳答案
如果您的方程式非常简单,您可以创建类似于以下的函数:
function calcString($str)
{
$patten = '/[\*\/\+-]/';
preg_match($patten,$str, $operator);
$arr = preg_split($patten,$str);
switch($operator[0]){
case '-':
return $arr[0] - $arr[1];
case '+':
return $arr[0] + $arr[1];
case '*':
return $arr[0] * $arr[1];
case '/':
return $arr[0] / $arr[1];
}
}
$num = "10+2";
echo calcString($num); // Output = 12
// Or
$num = "10-2";
echo calcString($num); // Output = 8
// Or
$num = "10*2";
echo calcString($num); // Output = 20
// Or
$num = "10/2";
echo calcString($num); // Output = 5
当然你可以把函数放在某种辅助类中。
关于php - 如何将字符串转换为包含数学运算的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19738766/