Lamentablemente, debe evaluarlo.
Y si los valores son como:
$deviceData["devicename"] = [
'a' => 20,
'b' => 30,
'c' => 580
];
Es posible que desee aislarlos, ya que necesitará extract()
si hay más de 3, etc., encapsularlos en función/cierre funcionaría.
<?php
$formula = '(($a+$b)/$c)';
$deviceData["devicename"] = ['a' => 20, 'b' => 30, 'c' => 580];
$runFormula = function ($formula, $data) {
extract($data);
return eval('return '.$formula.';');
};
echo $runFormula($formula, $deviceData["devicename"]);
O simplemente:
extract($deviceData["devicename"]);
echo eval('return '.$formula.';');
Pero está contaminando su tabla de variables globales con lo que se extrae, lo que puede causar más problemas.
Aunque no utilice eval si la fórmula está definido por el usuario, o tendrá problemas de seguridad.