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

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のマニュアルから検索