6

私はこれのバリエーションを見続けています:

等しくない !=

等しくない、等しい

!==

どちらが標準ですか、それとも意味が異なりますか?

後者は文字列の場合は値と名前もチェックすると思いますが、前者は値のみをチェックするだけかもしれません...

4

4 に答える 4

19

==!=PHP では、特定の値が等しいとされるさまざまな型を比較できます。

たとえば、一方が文字列で他方が整数であっても、 はと"" == 0評価されます。true

===タイプと値を!==確認します。

したがって、"" === 0に評価されfalseます。


編集:この「タイプジャグリング」があなたを捕まえる方法の別の例を追加するには、これを試してください:

var_dump("123abc" == 123);

与えるbool(true)

于 2009-12-04T11:08:17.173 に答える
6

2 つ目は型厳密です。

"1" != 1;  // false
"1" !== 1; // true because the first is a string, the second is a number
于 2009-12-04T11:08:23.037 に答える
5

!=値が等しくない

!==と型が等しくない

于 2009-12-04T11:07:32.103 に答える
1

例では:

"2" == 2 -> true

"2" === 2 -> false


"2" !== 2 -> true

"2" != 2 -> false

これは、返すことができる特定の関数を使用する場合にも重要です0false

たとえば、 strpos: 値だけでなく、常に型もチェックする必要があります。なぜなら0 == false0 !== false

文字列が最初の位置にある場合、strpos返される可能性があるためです。0ただし、これは false とは異なり、文字列が見つからなかったことを意味します。

于 2009-12-04T11:10:15.920 に答える