这可能吗?

$var_1 = 1;
$var_2 = 10;
$comparison = '>';

if($var_1 $comparison $var_2) {
    // do something...
}

现在的语法无效,但是有办法吗?

最佳答案

不是本机的(当然eval除外)。您将需要自己评估各种表达式。构建包装函数,并使用switch语句。或对于非表达式比较的简单映射:

$var_1 = 1;
$var_2 = 10;
$comparison = '>';

$map = array(
    ">" => $var_1 > $var_2,
    "<" => $var_1 < $var_2,
    "==" => $var_1 == $var_2,
    "!=" => $var_1 != $var_2,
);

if($map[$comparison]) {
    // do something...
}

10-04 17:52