我处在一种情况下,我会在变量中得到比较字符串,我想在IF中使用该变量
$xyz = '$abc<200'; // Dummy Dynamic Text
if($xyz) { // It should execute like if($abc<200)
echo 'you are dynamic';
}
在上面的示例中,比较字符串动态地在$ xyz变量中出现,我想将该变量放入if条件中,我该怎么做?
答案 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
}