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

Cai*_*uke 2 php if-statement boolean

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

if($apple==1 && $orange==2 || cake==0)
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢.

Sha*_*ran 9

您应该使用内括号作为优先级.

原因是......包含在括号内的第一个条件将被计算为一个块

正如其他用户所提到的那样,&&优先级高于|| 不需要括号,但是如果你的if语句继续这样说话.

if($apple==1 || $orange==2 && cake==0) 
Run Code Online (Sandbox Code Playgroud)

然后你需要继续......

if(($apple==1 || $orange==2) && cake==0)
Run Code Online (Sandbox Code Playgroud)

旁注:使用parantheses总是一个很好的做法......


use*_*740 5

表达方式

$apple==1 && $orange==2 || $cake==0
Run Code Online (Sandbox Code Playgroud)

相当于

($apple==1 && $orange==2) || $cake==0
Run Code Online (Sandbox Code Playgroud)

因为&& 有更高的优先权.因此,它意味着"当苹果是1而橙子是2,或蛋糕是0".

虽然可以使用括号 - 并且可以使代码更具可读性 - 但在这种情况下不需要它们.但是,写作时需要括号

$apple==1 && ($orange==2 || $cake==0)
Run Code Online (Sandbox Code Playgroud)

这意味着"当苹果为1时,橙色为2或蛋糕为0".