【PHP】比較演算子「===」と「==」の違い

目次

「==」について

他のプログラム言語、C#やJavaなどでの使い方だと以下のような比較はエラーになります。

1
2
3
if(1 == "1"){
// 処理
}

エラーになる原因は、数値型の1と文字列型の1を型が違うまま比較してしまっているからです。

しかし、PHPの==では、右辺と左辺の値を相互に型変換することで、データ型の違いに対して寛容な比較をすることができます。
よって、以下のようなコードでは問題なくif内の処理が動きます。

1
2
3
if(1 == "1"){
// 処理
}

「===」について

他のプログラム言語、C#やJavaなどでの使い方と同じように、型を自動で変換せずに厳格に比較することができます。

==の例のプログラムを===に置き換えてして実行すると、実行エラーになるはずです。

1
2
3
if(1 === "1"){
// 処理
}

どちらを使えばいいのか

データ型に対して寛容な比較をする==を使用するとデータ型の違いによるバグが起こる可能性があるため、特別な理由がない限りは、厳格な比較のできる===を使用するのが一般的です。

Author

Daiki Iijima

Posted on

2021-05-30

Updated on

2024-04-17

Licensed under