PHP 邏輯運算詳解


  最近在學習 php ,學到了邏輯運算符,總結總結。

  邏輯運算符用來組合邏輯運算的結果,是程序設計中一組非常重要的運算符。

  PHP的邏輯運算符如下:

運算符 舉例 結果為真
&& 或 and (邏輯與) $a and $b  或者  $a && $b  當$a和$b都為真時結果為true
||   或 or   (邏輯或)  $a || $b    或者  $a or $b  當$a為真或者$b為真時結果為true
xor  (邏輯異或) $a xor $b   當$a、$b 一個是真一個是假時結果為true
 !     (邏輯非)  !$a 當$a為假時結果為true

 

php中的這4種邏輯運算符,如果每個單獨使用沒有什么問題,大家都懂,我就不多說了。

例: $a and $b和$a && $b沒有任何區別。同樣的$a or $b和$a || $b也完全一樣。

但是如果混合使用,像這樣:

例:

$i=true;

$j=true;

$z=false;

if($i or $j and $z){

  echo "true";

}else{

  echo "false"

}

//    true

       if($i || $j and $z){

    echo "true";

   }else{

    echo "false"

   }

//    false 

我們可以看到這兩個 if 語句 除了 or 和 || 不同之外,其他完全一樣。但是結果不同,那這是為什么呢?

因為這兩種形式的邏輯運算符優先級不同,說白了就是運算順序不同。就像加減乘除,是先算加減后算乘除一樣。

這四個符號的優先允許從高到低是:&&、||、and、or。

所以上面這兩個if語句就相當於:

$i or $j and $z  =>  $i or ( $j and $z )   =>  true  or  ( true )     => 結果為true

$i || $j and $z  =>   ( $i || $j ) and $z   =>  ( true )  and  false  => 結果為false

 

如果你記不住級別,也沒有關系,你可以使用括號。

例:$a and (($b != $c) or (5 * (50-$d)))

 

 

 

                    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM