如何检查条件是否在php中定义为变量?

时间:2019-05-23 22:40:34

标签: php if-statement conditional-statements

我有一个变量,其中包含动态包含的条件,我需要检查该条件。例如,

$condition = '21 < 20';
if($condition){
    echo "yes";
    } else {
    echo "no";
    }

我要检查此条件,但由于条件变量具有某些字符串,因此它始终返回“是”。我如何才能实际检查21大于20的条件?有人可以解决这种问题吗?谢谢。

1 个答案:

答案 0 :(得分:1)

直接从PHP.net

  

警告    eval()语言结构非常危险,因为它允许执行任意PHP代码。因此不鼓励使用它。如果您已经仔细验证了除了使用此构造方法外没有其他选择,请特别注意不要在未经事先正确验证的情况下将任何用户提供的数据传递到其中。

话虽如此,使用您的要求(和代码的一部分),结果将如下所示:

// Define the condition from the other function
$condition = '5>3';

// Grab the result of evaluating that condition
// VERY DANGEROUS IF YOU CANNOT TRUST THE INPUT
$result = eval('return ('.$condition.');');

// Execute a normal if statement check
if($result){ echo "yes";} else {echo "no";}