我有这个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在上面发布的运营商优先权链接。这可能会让你对如何对逻辑表达式进行分组有一些更全面的了解。