这个用的不多,接到一个实验室的项目,要求是计算蛋白质含量水分含量的这样一个需求。用户自己编写公式和输入参数,然后实现公式的计算得到结果;

例如:计算公式 x=a²+b²+2ab
这个公式是用户自定义的 当然在录入的时候需要录入成这样 x=a*a+b*b+ab*2

我们的目的是要在每个参数(a 和 b)的前面添加一个 $ 符号 那么怎么替换呢

首先要遍历所有的参数(a 和 b) 然后把公式 a*a+b*b+ab*2 进行字符串拆分 加入$符号 然后进行一下 eval()

下面代码:

$formula_str = 'm1/m/F/V*25';
$params =['m1','m',"F","V"];
foreach ($params as $letter) {
        if (is_null($test_data[$val]) || '' == $test_data[$val]) {
            $return["msg"] = '所有数据必须录入';
            exit ($return);
        }
    $$letter = $test_data[$val]; //变量赋值

    $formula_array = explode($letter,$formula_str?$formula_str:$formula);
    $formula_str = implode("$".$letter,$formula_array);
    $formula_str = str_replace('$$','$',$formula_str);
}
$result = eval("return " . $formula_str . ";");