オペレーター!=
とPHPで<>
の違いは何ですか?変数がNULL
と等しくないかどうかを確認する必要があります。どのオペレータを使用すればよいですか?
違い
答えて
これらの2つの演算子には違いはありません。
NULL
を確認するには、あなたは、しかし、代わりに、アイデンティティ演算子===
を使用することがあります:
$a = 0;
if ($a == NULL) {
// executes
}
上記の条件が実際に真と評価されます。 TRUE
またはFALSE
または何か他のもの、あなたがその実際値をチェックする必要がありますし、ない結果以前のタイプから:変数は本当にNULL
(またはもあれば、アイデンティティ演算子を使用して、しかし、あなたは確認することができます変換)。希望は意味をなさない。
EDIT:は実際に質問に答えると、私の暴言を参照するには、他の回答やコメントで示唆されているように、変数がnullでないかどうか確認するために、あなたはアイデンティティオペレータの対応!==
(またはis_null()
を使用することができます)。
<>と!=の優先順位には若干の違いがありますが、もっとも複雑な条件はありません –
がPHP docsを参照してください:
それは言う:
$a != $b Not equal TRUE if $a is not equal to $b after type juggling.
$a <> $b Not equal TRUE if $a is not equal to $b after type juggling.
どのように扱われるかはnullを説明し、そのページ上のテーブルもあります。さらに、type comparisonsについては、このページを参照してください。
==' (Equal):
if("22" == 22) echo "YES";
else echo "NO";
上記のコードは "YES"と表示されます。その理由は、オペランドの値が等しいからです。これに対して、以下のサンプルコードを実行した場合:
'===' (Identical):
if("22" === 22) echo "YES";
else echo "NO";
結果は「いいえ」です。その理由は、両方のオペランドの値が同じであるにもかかわらず、それらの型が異なるが、 "22"(引用符付き)は文字列であり、22(引用符付き)は整数であるからである。私たちは、次の上記のコードを変更した場合でも:
if("22" === (string)22) echo "YES";
else echo "NO";
を一切<>、オペレータは、これらは整数の変数で使用されている< =または> =あるがありません。
あなたが使用する必要があり、null値を確認するには:
if($a == 'null') or if (isset($a))
両方似て動作します。
ここで答えを読むことができます:http://stackoverflow.com/questions/3956362/whats-the-difference-between-and-もし何かが 'NULL'であるかどうかをチェックするには' is_null() 'を使うことができます。 – Quasdunk