違い

2011-12-23 4 views
1

可能性の重複:
What's the difference between “<>” and “!=”?違い

オペレーター!=とPHPで<>の違いは何ですか?変数がNULLと等しくないかどうかを確認する必要があります。どのオペレータを使用すればよいですか?

+3

ここで答えを読むことができます:http://stackoverflow.com/questions/3956362/whats-the-difference-between-and-もし何かが 'NULL'であるかどうかをチェックするには' is_null() 'を使うことができます。 – Quasdunk

答えて

5

これらの2つの演算子には違いはありません。

NULLを確認するには、あなたは、しかし、代わりに、アイデンティティ演算子===を使用することがあります:

$a = 0; 

if ($a == NULL) { 
    // executes 
} 

上記の条件が実際に真と評価されます。 TRUEまたはFALSEまたは何か他のもの、あなたがその実際値をチェックする必要がありますし、ない結果以前のタイプから:変数は本当にNULL(またはもあれば、アイデンティティ演算子を使用して、しかし、あなたは確認することができます変換)。希望は意味をなさない。

EDIT:は実際に質問に答えると、私の暴言を参照するには、他の回答やコメントで示唆されているように、変数がnullでないかどうか確認するために、あなたはアイデンティティオペレータの対応!==(またはis_null()を使用することができます)。

+0

<>と!=の優先順位には若干の違いがありますが、もっとも複雑な条件はありません –

3

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については、このページを参照してください。

0
==' (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)) 

両方似て動作します。