PHP では、2 つの変数が等しいかどうかを比較する必要がある場合があります。この機能を実現するには、等号演算子「==」または合同演算子「===」を使用できます。どちらの演算子も等価比較を実行できますが、それらの間にはいくつかの違いがあります。
この記事では、「==」と「===」の具体的な機能をそれぞれ紹介し、その違いや使用シーンについて詳しく説明します。
1. "== 演算子
"== 演算子は、PHP の等号演算子であり、2 つの値が等しいかどうかを比較するために使用されます。変数は等しいです。例:
$x = 4; $y = "4"; if ($x == $y) { echo "变量x和y的值相等"; }
上記の例では、$x と $y の型は異なりますが、値は同じです。したがって、「==」演算子を使用すると結果がtrueであると判断され、「変数xとyの値が等しい」と出力されます。
ただし、「==」演算子は、変数のデータ型に関係なく、値を比較するだけであることに注意してください。したがって、一部の比較結果が期待を満たさない可能性があります。
たとえば、次の例では:
$x = 0; $y = "abc"; if ($x == $y) { echo "变量x和y的值相等"; }
$x と $y のデータ型と値は異なりますが、比較には「==」演算子が使用され、出力結果は「変数xとyの値は等しい」となります。
2. "=== 演算子
"=== 演算子は、PHP の合同演算子で、2 つの変数を比較するために使用されます。値とデータ型が等しい。例:
$x = 4; $y = "4"; if ($x === $y) { echo "变量x和y的值和数据类型都相等"; }
上記の例では、$x と $y の値は同じですが、型が異なります。したがって、「===」演算子を使用して比較すると false となり、何も出力されません。
3. 「==」と「===」の違い
「==」演算子は、変数の型が等しいかどうかに関係なく、変数の値が等しいかどうかのみを比較します。 「===」演算子は、変数の値と型が等しいかどうかを比較します。
2 つの変数の型と値が等しい場合、「==」演算子と「===」演算子を使用した結果どちらも true です。ただし、変数の型が異なる場合、「==」演算子と「===」演算子の使用結果が異なる場合があります。
たとえば、次の例では:
$x = 1; $y = "1"; if ($x == $y) { echo "值相等"; } if ($x === $y) { echo "值和类型都相等"; }
比較には「==」演算子を使用します。出力結果は「等しい値」になります。比較には「===」演算子を使用します。 、何も出力されません。
4. 使用シナリオ
ほとんどの場合、変数の比較には「===」演算子を使用することをお勧めします。これにより、比較結果の正確性が保証され、予期しない比較結果が回避されます。
何らかの型変換が必要な場合は、「==」演算子を使用できます。たとえば、文字列を整数に変換する必要がある場合は、以下に示すように「==」演算子を使用できます。他のシナリオでは、配列比較を実行するときに「==」演算子を使用できます。
$x = "4"; if ($x == 4) { echo "转换成功"; }
以上がphp の == と === の違いの簡単な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。