如何向php-if语句添加异常


How can i add exception to php if statement

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

解决这一问题的最佳方法是什么?

从您上面的评论中,您可能需要更清楚地定义何时"显示"和何时"不显示"。通常,如果只有两个场景——显示或不显示——那么就不需要两个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;

我不知道"显示"answers"不显示"是什么意思,所以我只是假设true/false能为你服务。

还可以查看abhishek在上面发布的运营商优先权链接。这可能会让你对如何对逻辑表达式进行分组有一些更全面的了解。