Php 设置中的变量if()语句?
假设我有一个选项页面,它将Php 设置中的变量if()语句?,php,variables,if-statement,Php,Variables,If Statement,假设我有一个选项页面,它将$threshold设置为'1','2','3','4'或'5' 我有一个表单,根据该阈值以不同方式提交/重定向(目前阈值仅设置为3,不可更改,因此1、2、和3进入第一页并执行功能一,而4和5进入第二页并执行功能二 我希望人们能够设定自己的门槛 目前我有: if($foo == 'five' || $foo == 'four' || $foo == 'three'){ //DO ALL THIS CRAZY STUFF } else { //DO ALL
$threshold
设置为'1'
,'2'
,'3'
,'4'
或'5'
我有一个表单,根据该阈值以不同方式提交/重定向(目前阈值仅设置为3
,不可更改,因此1
、2
、和3
进入第一页并执行功能一,而4
和5
进入第二页并执行功能二
我希望人们能够设定自己的门槛
目前我有:
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' || $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')
如果($foo=='five'){
//做这些疯狂的事
}否则{
//做所有其他的事情
}
}
第三、第二和第一阶段也是如此
有没有一种简单的方法可以做到这一点?比如我应该将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
}
?
我不太确定解决这个问题的“最佳方法”:如果你必须基于多个变量做出复杂的决策,一个好的策略就是构建一个地图
映射是一个多维数组,有一个函数名或闭包作为值。你要做的是根据数组的键查找要调用的函数。我不确定,对于不同的
$threshold
数字和$foo
组合,你是否对它们中的每一个都有不同的函数,或者你只是想知道我f$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
}
}
“做所有这些疯狂的事情”和“做所有其他的事情”对于每个阈值都是一样的吗?对不起,我不太明白你想要什么,也不知道你的问题是什么…很难理解你想做什么…但也许答案涉及使用` in_array()因此,除了在数组($foo,$acepted_values)中执行‘$foo=='five'| |$foo=='four='four'| |$foo=='foo=='four''foo='four''foo='four''foo='four''foo='four''four''foo='foo='four'foo='foo='four''foo='foo='three''foo'。您可以在数组($foo,$acepted\u values)中执行‘‘是PHP的大块,但在每个实例中都是相同的