如何一次获得多个条件的结果

rea*_*amy 1 php conditional-statements

我什至不知道如何问我的问题!

我有一个这样的变量:

$value['state 1'] = true;
$value['state 2'] = false;
$value['state 3'] = false;
$value['state 4'] = true;
Run Code Online (Sandbox Code Playgroud)

我想保留一些关于每个状态的字符串,这些字符串false通过条件或其他方式具有true价值,如果所有状态都有价值,则有另一个字符串,例如:

$message = "";
if ($value['state 1'] !== true){
     $message .= "State one isn't working!\n";
} elseif ($value['state 2'] !== true){
     $message .= "State two isn't working!\n";
} elseif ($value['state 3'] !== true){
     $message .= "State three isn't working!\n";
} elseif ($value['state 4'] !== true){
     $message .= "State four isn't working!\n";
} else {
$message = "All states works!";
}
Run Code Online (Sandbox Code Playgroud)

在这段代码中,在第一个 true 条件之后,不会检查其他条件,所以我switch case以这种方式使用:

switch (false){
     case $value['state 1']:
        $message .= "State one isn't working!\n";
     case $value['state 2']:
        $message .= "State two isn't working!\n";
     case $value['state 3']:
        $message .= "State three isn't working!\n";
     case $value['state 4']:
        $message .= "State four isn't working!\n";
        break;
     default:
        $message = "All states works!";
        break;
}
Run Code Online (Sandbox Code Playgroud)

在匹配第一个 case 之后的这段代码中,那个 case 之后的所有字符串都将被添加到 $message 变量中!

好吧,我想现在你知道我想做什么了!你能帮我吗?

Aks*_*n P 5

将它们分开,最后检查您的$message变量:

$message = "";
if ($value['state 1'] !== true){
     $message .= "State one isn't working!\n";
}
if ($value['state 2'] !== true){
     $message .= "State two isn't working!\n";
}
if ($value['state 3'] !== true){
     $message .= "State three isn't working!\n";
}
if ($value['state 4'] !== true){
     $message .= "State four isn't working!\n";
}
if (!$message) {
$message = "All states works!";
}
Run Code Online (Sandbox Code Playgroud)