PHP-如何将字符串转换为包含数学运算的数字?

这个问题已经在这里有了答案:            >            How to mathematically evaluate a string like “2-1” to produce “1”?                                    8个
我的意思是将“ 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

当然,您可以将函数放在某种帮助程序类中.

上一篇:python-使用pyparsing进行部分评估


下一篇:在PHP中评估类似MongoDB的JSON查询