緩やかな比較 (==) と厳密な比較 (===) の違い

PHPの比較演算子には (===) があり、これは (==) とは比較の厳密性が異なります。

さまざまな型との比較結果

行と列はそれぞれ左辺と右辺を表し、比較の結果TRUEが返される組み合わせを○で、FALSEの場合を×で表します。

==による緩やかな比較 (Loose comparison)

  論理値 整数 文字列 NULL 配列
TRUE FALSE 1 0 -1 '1' '0' '-1' 'php' '' NULL array()
TRUE ○ × ○ × ○ ○ × ○ ○ × × ×
FALSE × ○ × ○ × × ○ × × ○ ○ ○
1 ○ × ○ × × ○ × × × × × ×
0 × ○ × ○ × × ○ × ○ ○ ○ ×
-1 ○ × × × ○ × × ○ × × × ×
'1' ○ × ○ × × ○ × × × × × ×
'0' × ○ × ○ × × ○ × × × × ×
'-1' ○ × × × ○ × × ○ × × × ×
'php' ○ × × ○ × × × × ○ × × ×
'' × ○ × ○ × × × × × ○ ○ ×
NULL × ○ × ○ × × × × × ○ ○ ○
array() × ○ × × × × × × × × ○ ○

===による厳密な比較 (Strict comparison)

  論理値 整数 文字列 NULL 配列
TRUE FALSE 1 0 -1 '1' '0' '-1' 'php' '' NULL array()
TRUE ○ × × × × × × × × × × ×
FALSE × ○ × × × × × × × × × ×
1 × × ○ × × × × × × × × ×
0 × × × ○ × × × × × × × ×
-1 × × × × ○ × × × × × × ×
'1' × × × × × ○ × × × × × ×
'0' × × × × × × ○ × × × × ×
'-1' × × × × × × × ○ × × × ×
'php' × × × × × × × × ○ × × ×
'' × × × × × × × × × ○ × ×
NULL × × × × × × × × × × ○ ×
array() × × × × × × × × × × × ○
※この表はPHP 型の比較表のデータを参考にしています。

緩やかな比較 (==) と厳密な比較 (===) の相違

表の※印で示す組み合わせに違いがあります。

  論理値 整数 文字列 NULL 配列
TRUE FALSE 1 0 -1 '1' '0' '-1' 'php' '' NULL array()
TRUE     ※   ※ ※   ※ ※      
FALSE       ※     ※     ※ ※ ※
1 ※         ※            
0   ※         ※   ※ ※ ※  
-1 ※             ※        
'1' ※   ※                  
'0'   ※   ※                
'-1' ※       ※              
'php' ※     ※                
''   ※   ※             ※  
NULL   ※   ※           ※   ※
array()   ※                 ※  
PHPのマニュアルから検索