Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 设置中的变量if()语句?_Php_Variables_If Statement - Fatal编程技术网

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的大块,但在每个实例中都是相同的