1

因此,假设我有一个选项页面将设置$threshold'1', '2', '3', '4', 或'5'

我有一个基于该阈值以不同方式提交/重定向的表单(现在阈值设置为threeonly,不可更改,所以one,,two然后three转到第 1并执行FUNCTION ONE,而four转到five2 页并执行FUNCTION二

我希望人们能够设定自己的门槛。

目前我有:

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/or 语句设置为变量一样吗?像:

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
}

??

我不太确定对此的“最佳方法”:/

4

2 回答 2

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
  }
}
于 2012-09-06T22:28:42.607 回答
0

如果您必须基于多个变量做出复杂的决定,一个好的策略是构建地图。

map 是一个多维数组,具有函数名或闭包作为值。您所做的是根据数组的键查找要调用的函数。

于 2012-09-06T21:44:06.127 回答