如何在php if语句中添加异常

时间:2016-05-07 04:13:09

标签: php

我有这个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'))) {
 }

最好的方法是什么?

1 个答案:

答案 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链接。这可能会为您提供有关如何对逻辑表达式进行分组的更多常识。