PHP在if语句中组合布尔运算符(AND,OR)

时间:2014-04-16 07:12:34

标签: php if-statement boolean

我想知道是否可以将这两个运算符(OR和AND)组合在一个if语句中。

if($apple==1 && $orange==2 || cake==0)

我想说的是:如果苹果等于1而橙等于2,或者蛋糕等于0则执行此操作。换句话说,我需要苹果和橙子等于上面提到的数字或蛋糕等于0。

这个表达是否正确?如果没有,最简单的方法是什么?

谢谢。

3 个答案:

答案 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)