如何动态传递if语句的条件

时间:2015-03-16 10:28:10

标签: php if-statement

我处在一种情况下,我会在变量中得到比较字符串,我想在IF中使用该变量

$xyz = '$abc<200'; // Dummy Dynamic Text

if($xyz) { // It should execute like if($abc<200)
    echo 'you are dynamic';
}

在上面的示例中,比较字符串动态地在$ xyz变量中出现,我想将该变量放入if条件中,我该怎么做?

2 个答案:

答案 0 :(得分:4)

你不能使用引号,因为它正在使用它。这样做:

$xyz=($abc<200); //or, as well, $xyz=$abc<200
if($xyz) { 
    echo 'you are dynamic'; 
}

但是,如果您希望将该条件文本保留在字符串中,则可以使用eval:

$xyz='$abc<200';
if(eval("return $xyz;")) { 
    echo 'you are dynamic'; 
}

答案 1 :(得分:1)

Eval有时会被禁用。这是出于安全原因。通常与suhosin。 Eval可能是邪恶的!考虑代码注入。

您可以尝试使用匿名函数。

<?php

$func = function($abc) {
  return $abc<200;
};


if ($func($abc)) {
   // great
}