请教:运算符的优先级

qq0084 2011-05-08 09:38:17
在php中,有这样两对运算符:|| , &&; or , and
请问这两组运算符的优先级是怎么样的?
相同优先级的运算符是从左到右结合的吗?


$a = true;
$b = true;
$c = false;
if($a or $b and $c)
echo "true";
else
echo "false";
echo "<br />";
if($a || $b and $c)
echo "true";
else
echo "false";
输出:true false
可以解释一下为什么是这样的结果吗?
...全文
83 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengyuxleidian 2011-05-08
  • 打赏
  • 举报
回复
哎,使用括号就是硬道理啊
qq0084 2011-05-08
  • 打赏
  • 举报
回复
是啊!不要纠结于小处
ywchn999123 2011-05-08
  • 打赏
  • 举报
回复
这个简单的很,都是一样的优先级,不信你就看c语言的书,他们属于同一级
qq0084 2011-05-08
  • 打赏
  • 举报
回复
谢谢大家帮助
baoxiaohua 2011-05-08
  • 打赏
  • 举报
回复
建议楼主别研究这个了(先用括号搞定吧),时间有限,研究别的去吧!

不然什么时候才能成为赶上!
乌镇程序员 2011-05-08
  • 打赏
  • 举报
回复
优先级:http://www.php.net/manual/zh/language.operators.precedence.php
|| > and > or
$a = true;
$b = true;
$c = false;
if($a or $b and $c) echo "true"; //相当于 if($a or ($b and $c))
else echo "false";
echo "<br />";
if($a || $b and $c) echo "true"; //相当于 if (($a || $b) and $c)
else echo "false";
ImN1 2011-05-08
  • 打赏
  • 举报
回复
&& -> || -> and -> or

没有相同优先级

$a or $b and $c // true or (true and false)

$a || $b and $c // (true || false) and false

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧