ホームページ  >  記事  >  バックエンド開発  >  PHP の等号 (==2 つの等号) と恒等 (=== 3 つの等号) 比較演算子の違いは何ですか?

PHP の等号 (==2 つの等号) と恒等 (=== 3 つの等号) 比較演算子の違いは何ですか?

WBOY
WBOY転載
2023-09-07 17:45:081433ブラウズ

PHP の等号 (==2 つの等号) と恒等 (=== 3 つの等号) 比較演算子の違いは何ですか?

PHP では、二重等号 (==) と三重等号 (===) は、値が等しいかどうかを比較するために使用される比較演算子です。ただし、動作と比較プロセスの厳密さは異なります。

二重に等しい (==)

二重等号演算子は 2 つの値が等しいかどうかをチェックしますが、2 つの値のデータ型が異なる場合は型強制を実行します。これは、PHP が比較を実行する前に値をジェネリック型に変換しようとすることを意味します。二重等号演算子に関する重要なポイントをいくつか示します。

  • 2 つの値が同じ型の場合、三重等号演算子 (厳密な比較) のように動作します。

  • 2 つの値の型が異なる場合、PHP はそれらを共通の型に変換しようとします。たとえば、整数と文字列を比較する場合、PHP は文字列を整数に変換しようとします。

  • 整数や浮動小数点数とは異なり、数値文字列は自動的に数値に変換されます。

  • ブール値は整数として比較されます (true は 1、false は 0)。

  • Null は、空の文字列、空の配列、またはゼロと等しいものとして扱われます。

  • 配列とオブジェクトは、その内容ではなく、その ID によって比較されます。

例 1

リーリー ###出力### リーリー

イラスト

二重等号演算子は型強制を実行するため、文字列「5」は整数 5 に変換され、比較は true を返します。

例 2

リーリー ###出力### リーリー

イラスト

二重等号演算子は型強制を実行します。文字列「5.0」は浮動小数点数 5.0 に変換され、比較により true が返されます。

三重等号 (===)

三重等価演算子は恒等演算子とも呼ばれ、2 つの値の間の厳密な比較を実行します。型強制を実行せずに、値と型が等しいかどうかをチェックします。トリプル等号演算子はより厳密であり、予期しないまたは予想外の型変換を回避するため、一般に安全に使用できると考えられています。以下に、トリプル等号演算子に関する重要なポイントをいくつか示します。

比較される 2 つの値が同じ型および同じ値を持つ場合にのみ true を返します。

  • 型が異なる場合、または一方の値をもう一方の値の型にキャストできない場合、演算子は false を返します。

  • 比較の前に型変換やキャストは実行されません。

  • 通常、型の整合性が重要な値を比較する場合に推奨されます。

  • 例 1

    リーリー ###出力### リーリー
  • イラスト

トリプル等号演算子は、値と型の両方を考慮して厳密な比較を実行します。

#$

value1 は整数、

$

value2 は文字列であるため、これらは等しいとは見なされません。

例 2 リーリー ###出力### リーリー イラスト

$

value1 と

$

value2 は両方とも同じ値 10 の整数であるため、=== を使用した厳密な比較は true を返し、「等しい」が出力としてエコーされます。

###結論は###

PHP では、二重等号 (==) 演算子と三重等号 (===) 演算子の比較動作が異なります。二重等号は、型による緩やかな等価性チェックを強制し、比較する前に値を共通の型に変換しようとします。対照的に、トリプルイコールは、値と型の両方を考慮して、型強制を行わずに厳密な等価性チェックを実行します。トリプルサインは、その信頼性と予測可能性のためによく好まれます。これは、意図しない型変換によって引き起こされる予期しない動作を防ぐのに役立ちます。これらの違いを理解することで、開発者は必要な比較要件に基づいて適切な演算子を選択し、コードの精度を維持できるようになります。

以上がPHP の等号 (==2 つの等号) と恒等 (=== 3 つの等号) 比較演算子の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
前の記事:PHPのfscanf()関数次の記事:PHPのfscanf()関数