逻辑运算符最常用的就这三种写法:逻辑非!$a、逻辑与$a && $b、逻辑或$a || $b。
$a and $b、$a or $b、$a xor $b楠神也都没用过,很少用到,想了解的自己看手册吧。
逻辑运算符都是针对布尔类型的值进行的运算,如果不是布尔值,就会转换为布尔值。
逻辑非!$a
!true ==> false
!false ===>true
结果:
看示例应该明白,逻辑非就是取反。
逻辑与$a && $b
规则(真值表):
true && true ==> true;
true && false ==>false
false && true ==>false;
false && false ==>false;
只有两个都是true,结果才是true
只要有一个是false,结果就是false
结果:
逻辑或$a || $b
规则(真值表):
true || true ==> true;
true || false ==>true
false || true ==>true;
false || false ==>false;
只有两个都是false,结果才是false
只要有一个是true,结果就是true
结果:
细节说明:
逻辑与,当第一个是false,它就直接返回false,不再去验证第二个。
逻辑或,当第一个是true,它就直接返回true了,不再去验证第二个。
这样的情况称之为短路,这个细节很重要,不注意的话会影响程序效果的,看示例:
结果:
赋值运算符比逻辑运算符优先级低,所以我用小括号提高它的优先级。
在我们的手册里可以找到这张运算符优先级表: