php equal 等於 == , === , !== , <> ...等用法

由於php的參數特性為動態型別,所以有時候php會自動幫我們做型別的調整
例如: if( 1=="1" )  結果為 true
但是  if( 1==="1") 結果可是為 false的唷

原因是 1 是數值, "1"是字串, 這兩個是不同的型別, 而=== 則是告訴系統,不用幫我轉換型別,要用原始的型別來比較‧

判斷式
結果
$a == $b 等於 if( 1=="1" ) TRUE
$a === $b 完全等於 if( "1"==="1" ) TRUE ;
if( 1==="1" ) FALSE
$a != $b 不等於 if( 1 != 2 ) TRUE ;  
if( 1 != "2" )TRUE ;   
if( 1 != 1 ) FALSE ; 
if( 1 != "2" ) FALSE
$a <> $b 不等於 同上
$a !== $b 不完全等於 if( 1 !== "2" ) TRUE ; 
if( 1 !==  2 ) FALSE ;
$a < $b 小於 if( 1 < 2 ) TRUE ; 
if( 1 <  "2" ) TRUE ; 
if( 2 <  2 ) FALSE ;  
if( 2 <  1 ) FALSE ;
$a > $b 大於 if( 2 > 1 ) TRUE ; 
if( 2 >  "1" ) TRUE ; 
if( 2 >  2 ) FALSE ;  
if( 1 >  2 ) FALSE ;
$a <= $b 小等於 if( 1 <= 2 ) TRUE ; 
if( 2 <=  "2" ) TRUE ; 
if( 2 <=  1 ) FALSE ;
$a >= $b 大等於 if( 2 >= 1 ) TRUE ; 
if( 2 >=  "2" ) TRUE ; 
if( 1 >=  2 ) FALSE ;
<?php
    var_dump(0 == "a"); // 0 == 0 -> true
    var_dump("1" == "01"); // 1 == 1 -> true
    var_dump("1" == "1e0"); // 1 == 1 -> true

    switch ("a") {
      case 0:
      echo "0";
      break;
      case "a": // never reached because "a" is already matched with 0
      echo "a";
      break;
    }
?>