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

Php 如何将字符串转换为包含数学运算的数字?,php,parsing,eval,evaluation,Php,Parsing,Eval,Evaluation,我的意思是把这个:'1+1'转换成这个:1+1 我发现,可以对字符串执行数学运算,如下所示: $num = "10" + 1; 但是这里不一样,因为数学运算符在字符串中如果你的方程非常简单,你可以生成一个类似于以下的函数: function calcString($str) { $patten = '/[\*\/\+-]/'; preg_match($patten,$str, $operator); $arr = preg_split($patten,$str);

我的意思是把这个:
'1+1'
转换成这个:
1+1

我发现,可以对字符串执行数学运算,如下所示:

$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
当然,你可以把函数放在一个助手类中