Php 是否有一种方法可以将多个条件作为一个整体与另一个条件关联?

Php 是否有一种方法可以将多个条件作为一个整体与另一个条件关联?,php,if-statement,boolean,bitwise-operators,Php,If Statement,Boolean,Bitwise Operators,我试图合并几个不同的if语句。我试图实现的目标是这样的: $condition1 = ($calc->number % 2 == 1) && ($calc->doubleColor == 'b2'); $condition2 = ($calc->number % 2 == 0) && ($calc->doubleColor == 'r2'); $condition3 = in_array($calc->number, $backToB

我试图合并几个不同的if语句。我试图实现的目标是这样的:

$condition1 = ($calc->number % 2 == 1) && ($calc->doubleColor == 'b2');
$condition2 = ($calc->number % 2 == 0) && ($calc->doubleColor == 'r2');
$condition3 = in_array($calc->number, $backToBet);
if (($condition1 || $condition2) && $condition3) {
}
如果这是真的,这是真的,或者这是真的,这是真的,这是真的

因此,前两组括号中至少有一个必须为真,如果其中一个为真,那么最后一组括号也必须为真,以便执行其中的代码

以下是我尝试使用但未成功的特定代码:

 if(($calc->number % 2 == 1 && $calc->doubleColor == 'b2' | $calc->number % 2 == 0 && $calc->doubleColor = 'r2') && in_array($calc->number, $backToBet)){

  }
有办法做到这一点吗?有可能吗?在一个if语句中加入很多内容有什么缺点吗

编辑


基本上,我最后得到的结果是“true”,即使内括号中的两个条件都不满足。

为了使代码更易于阅读,我建议使用单独的变量,如下所示:

$condition1 = ($calc->number % 2 == 1) && ($calc->doubleColor == 'b2');
$condition2 = ($calc->number % 2 == 0) && ($calc->doubleColor == 'r2');
$condition3 = in_array($calc->number, $backToBet);
if (($condition1 || $condition2) && $condition3) {
}
有两点需要注意:

||是逻辑或,|是位或 ==是比较,=是赋值
您需要使用| | for OR,而不是|,这是按位OR运算符。否则您的代码看起来很好。请尝试在Ilya的答案中添加您的答案中缺少的括号。并使用正确的类型或,您已经指出但没有指出的类型。@ScottHunter是的,添加了关于itI的注释我完全按照您的示例进行设置,但它仍然仅根据第三个条件返回true。因为在我的例子中,前两个条件都不会返回true。我很困惑。@GabrielLuciano打印所有变量以调试问题我不知道您是想在我自己的端打印它们,还是想在这里打印它们以便您可以查看。为了以防万一,我把它们印回了我的答案。它们是我用来调试的var_转储的结果。