Mysql
 sql >> база данни >  >> RDS >> Mysql

как да използвам низ като формула за математически изчисления в php?

За съжаление трябва да го оцените.

И ако стойностите са като:

$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. MySQL - присъединяване въз основа на дата

  2. mysql.sock не е създаден OSX

  3. Как да създадете база данни в MySQL Workbench с помощта на GUI

  4. Защо приблизителният брой редове е много различен в резултатите от phpmyadmin?

  5. Представете време без дата в рубин