Как использовать оператор условия, извлеченный из базы данных и добавленный в скрипт с PHP - PullRequest
1 голос
/ 20 марта 2020

Я храню свои операторы условий в базе данных, так как у нас есть куча различных условий, и их нужно динамически вставлять в код. Итак, я извлекаю оператор условия из базы данных и сохраняю его в переменной. Но тогда мне нужно использовать оператор в моем операторе if. Как вставить его в оператор if и использовать его как обычный оператор условия?

Вот пример кода:

$cond_operator = "<"; // (but this opperator actually pulled from database)

if ( $actual_value $cond_operator $score_value ) {
    return $result;
}

1 Ответ

3 голосов
/ 20 марта 2020

Единственный способ сделать то, что вы показываете, это eval () . Но обычно не одобряется использование eval(), потому что оно представляет множество потенциальных уязвимостей безопасности.

Я бы сделал это жестко, чтобы избежать eval() и убедиться, что я могу контролировать указанные c операторы Я хочу поддержать:

$cond_operator = "<"; // (but this operator actually pulled from database)

switch ($cond_operator) {
  case "<":
    if ( $actual_value < $score_value ) {
      return $result;
    }
    break;
  case ">":
    if ( $actual_value > $score_value ) {
      return $result;
    }
    break;
  case "==":
    if ( $actual_value == $score_value ) {
      return $result;
    }
    break;
  default:
    trigger_error("Unsupported condition operator: '$cond_operator'");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...