दुर्भाग्य से, आपको इसे eval करना होगा।
और यदि मान इस प्रकार हैं:
$deviceData["devicename"] = [
'a' => 20,
'b' => 30,
'c' => 580
];
हो सकता है कि आप उन्हें अलग करना चाहें क्योंकि आपको extract()
. की आवश्यकता होगी उन्हें उपयोग करने के लिए उपयोग करने के लिए यदि 3 से अधिक आदि हैं, तो फ़ंक्शन/क्लोजर में एनकैप्सुलेटिंग काम करेगा।
<?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"]);
या बस:
extract($deviceData["devicename"]);
echo eval('return '.$formula.';');
लेकिन आप अपनी वैश्विक चर तालिका को जो निकाला गया है उससे प्रदूषित कर रहे हैं, संभावित रूप से अधिक समस्याएं पैदा कर रहे हैं।
यद्यपि eval का उपयोग न करें यदि सूत्र उपयोगकर्ता द्वारा परिभाषित किया गया है, या आपके पास सुरक्षा समस्याएं होंगी।