我想知道是否可以将这两个运算符(OR和AND)组合在一个if语句中。
if($apple==1 && $orange==2 || cake==0)
我想说的是:如果苹果等于1而橙等于2,或者蛋糕等于0则执行此操作。换句话说,我需要苹果和橙子等于上面提到的数字或蛋糕等于0。
这个表达是否正确?如果没有,最简单的方法是什么?
谢谢。
答案 0 :(得分:8)
您应该使用内括号作为优先级。
原因是......包含在括号内的第一个条件将被评估为块
正如其他用户所提到的那样,&&
优先于||
,不需要括号,但请说明if
语句是否继续这样......
if($apple==1 || $orange==2 && cake==0)
然后你需要继续......
if(($apple==1 || $orange==2) && cake==0)
旁注:使用parantheses总是一个好习惯......
答案 1 :(得分:5)
表达式
$apple==1 && $orange==2 || $cake==0
相当于
($apple==1 && $orange==2) || $cake==0
因为&&
has a higher precedence。因此,它意味着“当苹果为1,橙色为2,或蛋糕为0”时。
虽然可以使用括号 - 并且可以使代码更具可读性 - 但在这种情况下不需要它们。但是,在编写
时需要括号$apple==1 && ($orange==2 || $cake==0)
表示“当苹果为1时,橙色为2或蛋糕为0”的情况。
答案 2 :(得分:0)
在您的情况下,该条款应如下所示。
if(($apple==1 && $orange==2) || cake==0)