我有这个if语句但是如何为它添加更多条件?:
if($row['Type']==$rtype){
}
我希望有两个条件,所以当$row['Type']=A
和$rtype=B
相反时所有其他条件应该完全匹配但是如果类型A和B合在一起我想要允许语句显示结果
我尝试添加:
($row['Type']=='A' && $rtype=='B') || ($row['Type']=='B' && $rtype=='A')
为:
if(...&& (($row['Type']==$rtype) || ($row['Type']=='A' && $rtype=='B') || ($row['Type']=='A' && $rtype=='B'))) {
}
最好的方法是什么?
答案 0 :(得分:0)
从上面的评论中,您可能需要更清楚地定义何时“显示”以及何时“不显示”。通常情况下,如果只有两种情况 - 显示或不显示 - 则您不需要两个if
条件。
但是,根据您的描述,这应该有效:
if (($rtype == 'A' && $row['Type'] == 'B') || ($rtype == 'B' && $row['Type'] == 'A')) {
return true;
}
if (($rtype == 'D' && $row['Type'] == 'D') || ($rtype == 'E' && $row['Type'] == 'E') || ($rtype == 'F' && $row['Type'] == 'F') {
return false;
}
请注意,每个群组都包含在自己的(
和)
中。这就是你正在寻找的AND
。在每个小组之外,||
将执行OR
。
如果您知道如果第一个if
未评估为true
,则您不想“显示”,那么您可以这样做:
if (($rtype == 'A' && $row['Type'] == 'B') || ($rtype == 'B' && $row['Type'] == 'A')) {
return true;
}
return false;
我不确定“显示”和“不显示”是什么意思所以我只是假设true/false
会为你做。
另请查看abhishek上面发布的Operator Precedence链接。这可能会为您提供有关如何对逻辑表达式进行分组的更多常识。