2016-08-28 10 views
-2

は多くの場合、私はこのようなPHPの何かのためif文で参照してください。

if (null === $variable) { 
    // do stuff 
} 

それが何をするのか、それがために何ですか?

編集:私は完全にそれが比較演算子であることを得る、私はちょうどなぜ$variable === nullを疑問に思う。

+1

これらは代入ではなく、変数がnullかどうかを確認するためのチェックです – Li357

+1

'='、 '==' '===' –

+0

@AndrewL。、申し訳ありませんが私の間違いは訂正されましたが、この '$ variable === null'のようにチェックしないのはなぜですか?なぜそれは他の方法の周りですか? –

答えて

3

の割り当てがでない場合は、の比較と同等です。変数$variableに値nullが含まれているかどうかが判断されます。

ドキュメントの

より:

なぜ一部の人々は上の定数でフォームを使用したい$variable === null

をチェックしません左(a "Yoda条件"と呼ばれているので)、タイプミスがあり、単一の=だけを入力すると、割り当てを行うのではなく構文エラーが発生します。

+0

申し訳ありませんが、質問を修正しましたが、なぜ '$ variable === null'をチェックしないのですか? –

+0

同じ言語ではないが同じ理由:http://stackoverflow.com/questions/271561/why-does-one-often-see-null-variable-instead-of-variable-null-in-c – Li357

+0

@DimaDz :私はそれについて上記のメモを追加しました。 –

1

これは、プログラマーが通常、間違いのない割り当てを防ぐトリックとして通常使用されるヨーダスタイルです。

例:

var a = dosomething(); 

    if(a = null){ 
     //more here 
    } 

注我々は平等のためにチェックし割り当てるため、ブロックは関係なく、常にdoSomethingメソッドの結果の実行されない場合ということ。この割り当ては、おそらく非決定性の性質を無効にしますdoSomething