Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

bagaimana cara menggunakan string sebagai rumus untuk perhitungan matematika di php?

Sayangnya, Anda perlu mengevaluasinya.

Dan jika nilainya seperti:

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

Anda mungkin ingin mengisolasinya karena Anda perlu extract() mereka keluar untuk digunakan jika ada lebih dari 3 dll, enkapsulasi dalam fungsi/penutupan akan berfungsi.

<?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

Atau cukup:

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

Tetapi Anda mengotori tabel variabel global Anda dengan apa yang diekstraksi, yang berpotensi menyebabkan lebih banyak masalah.

Meskipun tidak menggunakan eval if rumus ditentukan oleh pengguna, atau Anda akan mengalami masalah keamanan.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nama Pengambilan PHP/MYSQL berdasarkan kriteria lain

  2. Saya tidak dapat memuat driver JDBC untuk MySQL

  3. Bagaimana cara json_encode array dengan aksen Prancis?

  4. Cara Mengaktifkan Cache Permintaan MySQL

  5. Cara menyembunyikan String Koneksi MySQL- Nama Pengguna dan Kata Sandi di GitHub (Java)