【问题标题】:How to convert a string to numbers that include math operations in it? [duplicate]如何将字符串转换为包含数学运算的数字? [复制]
【发布时间】:2013-11-13 08:41:54
【问题描述】:

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

我找到了this answer,它说您可以对字符串执行数学运算,如下所示:

$num = "10" + 1;

但这里不一样,因为数学运算符在字符串内

【问题讨论】:

    标签: php parsing eval evaluation


    【解决方案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
    

    当然你可以把这个函数当作某种辅助类。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-20
      相关资源
      最近更新 更多