Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

php में गणितीय गणना के लिए सूत्र के रूप में एक स्ट्रिंग का उपयोग कैसे करें?

दुर्भाग्य से, आपको इसे 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"]);

https://3v4l.org/I2rbk

या बस:

extract($deviceData["devicename"]); 
echo eval('return '.$formula.';'); 

लेकिन आप अपनी वैश्विक चर तालिका को जो निकाला गया है उससे प्रदूषित कर रहे हैं, संभावित रूप से अधिक समस्याएं पैदा कर रहे हैं।

यद्यपि eval का उपयोग न करें यदि सूत्र उपयोगकर्ता द्वारा परिभाषित किया गया है, या आपके पास सुरक्षा समस्याएं होंगी।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. जेटी-env.xml डेटा स्रोत के साथ एमवीएन जेट्टी पर WebAppContext को विफल करने की ओर जाता है:रन

  2. अधिकतम (लंबाई (फ़ील्ड)) mysql . में

  3. सम्मिलित तालिका से SQL गणना

  4. ट्रिगर बनाने से पहले DELIMITER पर MySQL सिंटैक्स त्रुटि

  5. DATE और TIME से DATETIME बनाना