转换在If条件下从数据库检索的字符串

时间:2018-04-04 08:54:09

标签: php database yii expression

我在数据库的一列中存储了一些规则/逻辑。通过重试的规则,我想让它成为一个条件。由于检索到的规则作为字符串值返回,因此我的条件总是为TRUE。

让我们说

$www = $rule->logic; // $rule ->logic = (20 >  3) and (20 <  5)
    if($www ){                          
        $this->logger->debug('commision granted');
            }else{
        $this->logger->debug('commision noooo');
            }

然而,如果我只是使用if ((20 > 3) and (20 < 5))那么我可以得到正确答案。 我不知道如何转换$ www?

1 个答案:

答案 0 :(得分:3)

您可以使用PHP eval()来执行表达式:

$www = $rule->logic; // $rule ->logic = (20 >  3) and (20 <  5)
if(eval("return $www;")){                          
    echo 'commision granted';
        }else{
    echo 'commision noooo';
        }