来自设置的变量if()语句?

时间:2012-09-06 21:35:15

标签: php variables if-statement

所以,假设我有一个选项页面,将$threshold设置为'1''2''3''4''5'

我有一个表单根据该阈值提交/重定向(现在阈值仅设置为three,不可更改,因此onetwothree转到第一页并执行功能一次,而fourfive转到第二页 >并执行 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
}

...

我不太确定对此最好的方法:/

2 个答案:

答案 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是一个多维数组,它有一个函数名或一个闭包作为值。你要做的是根据数组的键查找要调用的函数。