Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

làm thế nào để sử dụng một chuỗi làm công thức cho các phép tính toán học trong php?

Thật không may, bạn cần phải đánh giá nó.

Và nếu các giá trị như sau:

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

Bạn có thể muốn cô lập chúng vì bạn sẽ cần extract() chúng ra để sử dụng nếu có nhiều hơn thì 3, v.v., đóng gói trong hàm / đóng sẽ hoạt động.

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

Hoặc chỉ:

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

Nhưng bạn đang làm ô nhiễm bảng biến toàn cục của mình với những gì được trích xuất, có khả năng gây ra nhiều vấn đề hơn.

Mặc dù không sử dụng eval nếu công thức do người dùng xác định, nếu không bạn sẽ gặp vấn đề về bảo mật.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. AWS rds - Làm cách nào để đọc từ một bản sao đã đọc bên trong ứng dụng Java?

  2. mysql:xem tất cả các kết nối đang mở đến một cơ sở dữ liệu nhất định?

  3. Thay đổi múi giờ MySQL?

  4. Di cư phía nam Django - Thêm chỉ mục FULLTEXT

  5. Batch tệp để kết nối mysql và chạy lệnh