本文介绍了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语句的构建条件比较的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!