私はこれのバリエーションを見続けています:
等しくない
!=
等しくない、等しい
!==
どちらが標準ですか、それとも意味が異なりますか?
後者は文字列の場合は値と名前もチェックすると思いますが、前者は値のみをチェックするだけかもしれません...
==
!=
PHP では、特定の値が等しいとされるさまざまな型を比較できます。
たとえば、一方が文字列で他方が整数であっても、 はと"" == 0
評価されます。true
===
タイプと値を!==
確認します。
したがって、"" === 0
に評価されfalse
ます。
編集:この「タイプジャグリング」があなたを捕まえる方法の別の例を追加するには、これを試してください:
var_dump("123abc" == 123);
与えるbool(true)
!
2 つ目は型厳密です。
"1" != 1; // false
"1" !== 1; // true because the first is a string, the second is a number
!=
値が等しくない
!==
値と型が等しくない
例では:
"2" == 2 -> true
"2" === 2 -> false
"2" !== 2 -> true
"2" != 2 -> false
これは、返すことができる特定の関数を使用する場合にも重要です。0
false
たとえば、 strpos: 値だけでなく、常に型もチェックする必要があります。なぜなら0 == false
ば0 !== false
。
文字列が最初の位置にある場合、strposが返される可能性があるためです。0
ただし、これは false とは異なり、文字列が見つからなかったことを意味します。