【问题标题】:Compare based on a stored variable基于存储的变量进行比较
【发布时间】:2018-03-21 18:11:59
【问题描述】:

也许有关于这个的话题,但我没找到。

我在数据库中存储了一个比较运算符和一个目标值,例如:

$target_value_1 => 1000

$operator => greather_than_or_equal

有没有办法在变量中使用这些运算符,例如:

if ($variable1 $operator $target_value_1){

    // Some code

}

使用 PHP 和 MySQL。

谢谢

【问题讨论】:

标签: php mysql metaprogramming


【解决方案1】:

我不确定你在构建什么,但你可以通过简单地创建一个 check($operator, $var1, $var2) 函数来对它进行排序:

function check($operator, $val1, $val2) {
    switch ($operator) {
    case 'greather_than_or_equal':
        return $val1 >= $val2;
        break;
    case 'greather_than':
        return $val1 > $val2;
        break;
    case 'operator_name':
        //return your condition goes here;
        break;
    default:
        return false;
        break;
    }
}

并使用它:if (check($operator, $value1, $value2)) { /* your code */ }

【讨论】:

  • 感谢您的回答。我正在考虑以这种方式绕过,但首先我想检查一下是否没有更短更清洁的方法。
  • 假设您已经定义了函数greather_than_or_equal($a, $b) {return $a>=$b;},您可以稍后将其用作if ($operator($variable1, $target_value_1)) { ..,您可以通过这种方式将您的运算符定义为函数,但在我看来它不太干净/可读。跨度>
猜你喜欢
  • 2018-06-25
  • 2013-01-18
  • 2015-11-20
  • 2020-05-06
  • 1970-01-01
  • 2020-04-10
  • 2019-05-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多