所以,假设我有一个选项页面,将$threshold
设置为'1'
,'2'
,'3'
,'4'
或'5'
我有一个表单根据该阈值提交/重定向(现在阈值仅设置为three
,不可更改,因此one
,two
和three
转到第一页并执行功能一次,而four
和five
转到第二页 >并执行 FUNCTION TWO 。
我希望人们能够设定自己的门槛。
目前我有:
if($foo == 'five' || $foo == 'four' || $foo == 'three'){
//DO ALL THIS CRAZY STUFF
} else {
//DO ALL THIS OTHER STUFF
}
我想要的基本上是一个包含该阈值的门槛:
if($threshold == '5'){
if($foo == 'five'){
//DO ALL THIS CRAZY STUFF
} else {
//DO ALL THIS OTHER STUFF
}
} else if ($threshold =='4'){
if($foo =='five' || $foo == 'four')
if($ foo =='five'){ //做所有这个疯狂的东西 } else { //做所有这些其他的东西 } }
等。对于3,2和1也是如此。
有一种简单的方法吗?我应该将if /或语句设置为变量吗?像:
if($threshold == '5'){ $var = "$foo =='five'" }
else if($threshold == '4'){ $var = "$foo =='five' || $foo == 'four'" }
然后做
if($var){
//DO ALL THIS CRAZY STUFF
} else {
//DO ALL THIS OTHER STUFF
}
...
我不太确定对此最好的方法:/
答案 0 :(得分:2)
我不确定,对于不同的$threshold
数字和$foo
组合,您是否有不同的功能,或者您只是想知道$foo
是否是$threshold
位于指定的// the map
$thresholds = array(
5 => array('five'),
4 => array('five','four'),
// etc
);
// dummy values
$threshold = 5;
$foo = "four";
// check values
if(array_key_exists($threshold,$thresholds)) {
if(in_array($foo, $thresholds[$threshold])) {
//DO ALL THIS CRAZY STUFF
}
else {
//DO ALL THIS OTHER STUFF
}
}
内。我想后者是你的目标:
{{1}}
答案 1 :(得分:0)
如果你必须根据多个变量做出复杂的决策,那么一个好的策略就是建立一个地图。
map是一个多维数组,它有一个函数名或一个闭包作为值。你要做的是根据数组的键查找要调用的函数。