我想使用来自数据库的一些选项在PHP中构建一个IF语句.
假设我从数据库得到这样的数组:
$db = [
'number1' => [
'<= 5',
'&&'
],
'number2' => [
'> 200',
'&&'
],
'number3' => [
'= 1',
'||'
],
'number3' => [
'= 2',
'||'
],
];
Run Code Online (Sandbox Code Playgroud)
我想将其翻译成:
if ($data['number1'] <= 5 &&
$data['number2'] > 200 &&
($data['number3'] == 1 ||
$data['number3'] == 2
)) {
// do something
}
Run Code Online (Sandbox Code Playgroud)
当然,我通过做一个foreach并将数组的KEY放入$data['']数组来启动它.但是,我很不确定如何将逻辑运算符和其他所有内容放在适当的位置.
谁能给我一个想法吗?
最好是清理来自MySQL或任何用户生成的数据的数据,而不是使用eval().对于您的情况,我建议将您的数据拆分为:
然后将其与现有的进行比较,然后使用它.首先,您可以:
if ($operator == ">=")
if ($operand >= $value)
Run Code Online (Sandbox Code Playgroud)
或类似的东西递归地构建它- 这是关键.希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
42 次 |
| 最近记录: |