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

标签 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/

相关文章:

Java HTML 解析

MYSQL - 选择和解析

python - 你如何在 Python 中请求 IMDB API?

PHP 评估 $a ="$a"?

r - 从 R 代码块创建对象而不转换为字符串

scheme - 如何在 Lisp 中将函数存储在变量中并使用它

php - 如何使用数组中的数据更新表列?

php - 无法找到缺少 backend\models\QuoteDocs 命名空间

php - 当 svg 文件嵌入图像时,如何使用 Imagemagick 将 svg 图像转换为 png 图像?

php - 删除除 "."以外的所有非单词字符