日期:2014-05-17  浏览次数:20410 次

这个条件1 AND ( 0 OR 条件2)逻辑运算怎么理解?
日前碰到这样一个问题,是关于逻辑运算的,请看:
条件1   AND   (   0   OR   条件2)
如果没有keyword,那么后面的部分就是(0)
条件1   AND   (   0),那就是不成立,没有查询结果返回,没有输入关键字嘛。
如果有,那么:
条件1   AND   (   0   OR   条件2)
实际上就是
条件1   AND   (   条件2)  
我写了一个测试代码:
<?php  
$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是否成立。