本文介绍了if语句的构建条件比较的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是否可能?

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

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

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

The syntax right now is not valid but is there a way to do this?

推荐答案

不是原生的(当然除了 eval )。你需要自己评估各种表达式。构建一个包装器函数并使用开关语句。或者对于非表达式比较一个简单的映射:

Not natively (except of course with eval). You will need to evaluate the various expressions yourself. Build a wrapper function and use a switch statement. Or for non-expression comparisons a simple map:

$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...
}

这篇关于if语句的构建条件比较的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-30 01:40