这个条件1 AND ( 0 OR 条件2)逻辑运算怎么理解?
日前碰到这样一个问题,是关于逻辑运算的,请看:
条件1 AND ( 0 OR 条件2)
如果没有keyword,那么后面的部分就是(0)
条件1 AND ( 0),那就是不成立,没有查询结果返回,没有输入关键字嘛。
如果有,那么:
条件1 AND ( 0 OR 条件2)
实际上就是
条件1 AND ( 条件2)
我写了一个测试代码:
$a = 3;
$b = 0;
if ($a and (1 OR $b))
{
print $a.$b;
}
else
{
print "false ";
}
?>
我将上面的and (0 OR $b))故意写成and (1 OR $b)),测试结果如下:
30
有网友指点说and (1 and $b))或and (0 OR $b)),当条件为AND时, 前边加1, 当条件为OR时加0才不会影响结果集.
但我故意写相反了,得出测试结果30,对于这个表达式还是想不明白,也不知思路卡在哪儿,当然了,如果写在$a and (0 OR $b))则会输出false,因为只有一边值为true,但还是想不明白区别在哪儿,大家给指点一二好吗?多谢了。
------解决方案--------------------
1and$b需要两个条件都成立
1or$b因为已经判断前面是1成立了,后面的就不判断了
0or$b前面是o不成立,所以继续判断$b是否成立。