我正在尝试合并一些不同的if语句。我要完成的工作将显示如下内容:
如果(这是真的,这是真的)或(这是真的,这是真的)AND(这是真的)
因此,前两个括号中的至少一个必须为true,如果其中一个为true,则最后一个括号也将为true,以便内部代码被执行。
这是我正在尝试(但不成功)尝试工作的特定代码:
if(($calc->number % 2 == 1 && $calc->doubleColor == 'b2' | $calc->number % 2 == 0 && $calc->doubleColor = 'r2') && in_array($calc->number, $backToBet)){
}
有没有办法做到这一点?一个潜在可能?将很多内容放入单个if语句有什么缺点吗?
编辑
$blackMatch = $calc->number % 2 == 1 && $calc->doubleColor == 'b2';
$redMatch = $calc->number % 2 == 0 && $calc->doubleColor = 'r2';
$numberMatch = in_array($calc->number, $backToBet);
if(($blackMatch || $redMatch) && $numberMatch){
}
/ ** Calc->number = 2, $blackMatch = false, $redMatch = false,
$numberMatch array contains 2 **/
即使内部括号中的两个条件都不满足,基本上我得出的结果还是一个“ true”结果。
答案 0 :(得分:1)
为了使代码更易于阅读,我建议使用单独的变量,如下所示:
$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) {
}
两点注意:
||
是逻辑OR,|
是按位OR ==
是比较,=
是赋值