PHP プログラミング言語では、同じ値が等しくないとみなされる場合があります。他の多くのプログラミング言語では同じ値が等しいとみなされることが多いため、これは一部の初心者プログラマーにとって混乱を招く可能性があります。この記事では、PHP で同じ値が等しくない理由を探ります。
まず、PHP の 2 種類の比較方法 (値の比較と型の比較) を理解する必要があります。値の比較では、2 つの変数の値が等しい場合、それらの変数は等しいとみなされます。一方、型比較では、値が等しいだけでなく、2 つの変数の型も同じである必要があります。
これをよりよく理解するために、いくつかの例を見てみましょう。 $x と $y という 2 つの変数があり、どちらも数値 1 に設定されているとします。値を比較すると、それらが等しいことは明らかです。したがって、次の PHP コードでは、出力 $x == $y
は true
を返します:
$x = 1; $y = 1; if ($x == $y) { echo "x == y is true"; } else { echo "x == y is false"; }
ただし、型比較では状況が異なる場合があります。例を挙げて説明しましょう。数値 1 に設定された変数 $x と、文字列「1」に設定された変数 $y があるとします。型の比較では、型が異なるため等しくありません。したがって、次の PHP コードでは、$x === $y
を出力し、false
を返します。
$x = 1; $y = "1"; if ($x === $y) { echo "x === y is true"; } else { echo "x === y is false"; }
次に、より複雑な例を見てみましょう。 。 2 つの変数 $a と $b があり、次の文字列に設定されていると仮定します。
$a = "apple"; $b = "apple";
最初の例では、2 つの変数 $a と $b の値を比較します。出力 $a == $b に対して true を返します:
if ($a == $b) { echo "a == b is true"; } else { echo "a == b is false"; }
ただし、次の例では、2 つの変数 $a と $b の型比較を実行します。 $a === $b
が出力されます。 false
:
if ($a === $b) { echo "a === b is true"; } else { echo "a === b is false"; }
が返されます。これは、値は同じですが、データ型が異なるためです。したがって、型比較を行う場合、これらは等しくないものとみなされます。
PHP では、同じ値が等しくない原因となるもう 1 つの要因は、データ型の自動変換です。例を見てみましょう。数値 0 に設定された変数 $x と、文字列「false」に設定された変数 $y があるとします。以下のコードでは、$x と $y の「同じ値が等しくない」比較を行っています。この場合、PHP は比較のために文字列「false」を数値 0 に変換します。
$x = 0; $y = "false"; if ($x == $y) { echo "x == y is true"; } else { echo "x == y is false"; }
上記のコードは、データ型が異なりますが、$x == $y
returns true
を出力します。これは、PHP が値に基づいてそれらが同じであると計算されるためです。ただし、型比較では、データ型が異なるため、$x === $y
は false
を返します。
要約すると、PHP プログラミングでは同じ値が等しくないように見える場合がありますが、実際には PHP の型比較方法と自動型変換が異なるだけです。コードを記述するときは、これらの違いを理解し、ニーズに応じて適切な比較方法を選択する必要があります。
以上がPHP の同じ値が次と等しくない理由の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。