我有一个简单的if语句,但没有得到预期的结果。如果所有三个变量都匹配,那么我将按预期得到not supported
。但是我希望一旦将其中一个变量更改为if语句中没有的值,例如$Main = "SomethingElse"
,如果if语句不匹配,则回显supported
。但是,supported
仅在所有三个var与if语句都不匹配时才返回。
为什么会这样?
$Main = "Main_Other";
$Backup = "Back_None";
$online = "no";
if ($online == "no" && $Main == "Main_Other" && $Backup == "Back_Other" || $Backup == "Back_None") {
echo "not support";
} else {
echo "supported";
}
答案 0 :(得分:2)
在您的示例中,如果$ backup的值设置为Back_None
,则if语句将始终返回true。
尝试使用以下代码。在这里,它将首先使用||
运算符检查$ backup值,然后将使用&&
运算符检查结果
$Main = "Main_Other";
$Backup = "Back_None";
$online = "no";
if ($online == "no" && $Main == "Main_Other" && ($Backup == "Back_Other" || $Backup == "Back_None")) {
echo "not support";
} else {
echo "supported";
}
答案 1 :(得分:-3)
$Main = "SomethingElse"
但|| $Backup == "Back_None"
,您使用or
但$Backup
不要改变