首页 > 代码库 > 学习笔记:逻辑运算符也有优先级区别
学习笔记:逻辑运算符也有优先级区别
不尝试还真不知道,居然是因为优先级的差别导致,如果是真实编程中遇到,排错就很困难了,幸亏这里看到了:
$a = true; //声明一个布尔型变量$a,赋值为真 $b = true; //声明一个布尔型变量$b,赋值为真 $c = false; //声明一个初值为假的布尔型变量$c if($a or $b and $c){ //用or做判断 echo "真"; }else{ echo "假"; } echo "<br/>"; if($a || $b and $c){ //用||做判断 echo "真"; }else{ echo "假"; }
输出结果:
真
假
没有错,就是“先真,后假”,就是因为and优先级比or高,而||又比and高。。。。
更多详细的优先级
结合方向 | 运算符 | 附加信息 |
---|---|---|
非结合 | clone new | clone 和 new |
左 | [ | array() |
非结合 | ++ -- | 递增/递减运算符 |
非结合 | ~ - (int) (float) (string) (array) (object) (bool) @ | 类型 |
非结合 | instanceof | 类型 |
右结合 | ! | 逻辑操作符 |
左 | * / % | 算术运算符 |
左 | + - . | 算术运算符 和 字符串运算符 |
左 | << >> | 位运算符 |
非结合 | < <= > >= <> | 比较运算符 |
非结合 | == != === !== | 比较运算符 |
左 | & | 位运算符 和 引用 |
左 | ^ | 位运算符 |
左 | | | 位运算符 |
左 | && | 逻辑运算符 |
左 | || | 逻辑运算符 |
左 | ? : | 三元运算符 |
右 | = += -= *= /= .= %= &= |= ^= <<= >>= | 赋值运算符 |
左 | and | 逻辑运算符 |
左 | xor | 逻辑运算符 |
左 | or | 逻辑运算符 |
左 | , | 多处用到 |
本文出自 “七彩极” 博客,请务必保留此出处http://qicaiji.blog.51cto.com/1158325/1945147
学习笔记:逻辑运算符也有优先级区别
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。