Mysql
 sql >> Baza danych >  >> RDS >> Mysql

jak używać ciągu znaków jako wzoru do obliczeń matematycznych w php?

Niestety musisz to ocenić.

A jeśli wartości są następujące:

$deviceData["devicename"] = [
    'a' => 20,
    'b' => 30,
    'c' => 580
];

Możesz chcieć je wyizolować, ponieważ będziesz musiał extract() można je wykorzystać, jeśli jest ich więcej niż 3 itd., Zamknięcie funkcji/zamknięcia będzie dział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"]);

https://3v4l.org/I2rbk

Lub po prostu:

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

Ale zaśmiecasz swoją tabelę zmiennych globalnych tym, co zostało wyodrębnione, potencjalnie powodując więcej problemów.

Nie używaj eval, jeśli wzór jest zdefiniowany przez użytkownika, w przeciwnym razie wystąpią problemy z bezpieczeństwem.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wyjście Pythona zlib, jak odzyskać z tabeli mysql utf-8?

  2. wstawianie danych za pomocą mysql Connector w pythonie

  3. Wymuś hibernację, aby utworzyć tabele po upuszczeniu i odtworzeniu bazy danych

  4. Dynamicznie zmieniaj połączenie z bazą danych w cakephp 3

  5. Nie znaleziono tabeli podstawowej migracji Laravel 4