1. 程式人生 > >學習筆記:邏輯運算符也有優先級區別

學習筆記:邏輯運算符也有優先級區別

php 運算符 優先級 and or

不嘗試還真不知道,居然是因為優先級的差別導致,如果是真實編程中遇到,排錯就很困難了,幸虧這裏看到了:

$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 newclone 和 new
[array()
非結合++ --遞增/遞減運算符
非結合~ - (int) (float) (string) (array) (object) (bool) @類型
非結合instanceof類型
右結合!邏輯操作符
* / %算術運算符
+ - .算術運算符 和 字符串運算符
<< >>位運算符
非結合< <= > >= <>比較運算符
非結合== != === !==比較運算符
&位運算符 和 引用
^位運算符
|位運算符
&&邏輯運算符
||邏輯運算符
? :三元運算符
= += -= *= /= .= %= &= |= ^= <<= >>=賦值運算符
and邏輯運算符
xor邏輯運算符
or邏輯運算符
,多處用到


本文出自 “七彩極” 博客,請務必保留此出處http://qicaiji.blog.51cto.com/1158325/1945147

學習筆記:邏輯運算符也有優先級區別