Leider müssen Sie es auswerten.
Und wenn die Werte wie folgt sind:
$deviceData["devicename"] = [
'a' => 20,
'b' => 30,
'c' => 580
];
Möglicherweise möchten Sie sie isolieren, da Sie extract()
benötigen sie aus, um sie zu verwenden, wenn es mehr als 3 usw. gibt, würde das Einkapseln in Funktion/Schließung funktionieren.
<?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"]);
Oder einfach:
extract($deviceData["devicename"]);
echo eval('return '.$formula.';');
Aber Sie verunreinigen Ihre globale Variablentabelle mit dem, was extrahiert wird, was möglicherweise mehr Probleme verursacht.
Verwenden Sie jedoch nicht eval, wenn die Formel wird vom Benutzer definiert, oder Sie haben Sicherheitsprobleme.