php不止一个条件是真的

时间:2016-07-26 16:54:31

标签: php if-statement

有多个变量说$a,$b,$c,$d具有布尔值。 所以我要做的是。

if($a){echo 1;}
if($b){echo 2;}
if($c){echo 3;}
if($d){echo 4;}
and so on.. 50 variables

有没有更好的方法呢?
注意:多个变量都可以为真。

3 个答案:

答案 0 :(得分:1)

可能将所有布尔变量放在布尔数组中,并迭代数组以检查值

$boolArray = array();
$boolArray[0] = array($a, 1);
$boolArray[1] = array($b, 2);
$boolArray[2] = array($c, 3);


...

for($x = 0; $x < count($boolArray); $x++) {
  if ($boolArray[x][1]) {  
     echo (string)$boolArray[x][2];
  }
}

答案 1 :(得分:1)

您可以使用此代码进行迭代:

$a= $b = $c = TRUE;
$array = array(0=> $a,1=>$b,2=> $c);
foreach($array as $key => $value){
  if($value){
      echo $key;
    }
}

答案 2 :(得分:0)

我认为你正在寻找类似的东西。

<?php
# Define the settings you already have
$a = true;
$b = true;
$c = true;

# Create an array with letters from a to z
# Instead of this, you can create an array of field names like array('a', 'b', 'c', 'd');
$options    = range('a', 'z');

# Loop in the letters from above
foreach($options as $id => $letter) {

    # Check if variable exists and boolean is true
    if(isset(${$letter}) && ${$letter} === true) {

        # Output number from id
        echo $id + 1;
    }
}
?>