- (技術的な)違いはありません。私の知る限り、Javaにも違いはありません。
- PHPでは、これらのいずれも使用しないでください。
常に厳密な比較演算子===
を使用し、!==
可能であれば使用することをお勧めします。緩やかな比較演算子が実際に必要になるタイミングがわかります。
誤解
私はあなたがいくつかのことについて混乱するかもしれないと信じています:
PHPマニュアルに、「PHPは各条件を左から右に順番にチェックする」と書かれていることがわかりました。
番号、
- PHPのマニュアルにはそうは書かれていません。コメントです。
- PHPはそれを行いません。
PHPは条件を左から右に評価しますが、結果が判明すると停止します。
expr1 && expr2
場合はexpr1
評価するが、にfalse
、expr2
なりません評価されます。これは短絡と呼ばれ、十分に文書化されているようには見えません。例1のコメントを除いて、この問題に関する他の公式のメモは見つかりませんでした。ただし、これはよく知られている機能です。
誤謬
私はJavaに慣れているので、条件は左から右に解釈されると常に考えています。つまり、null!= $ objと$ obj!= nullには決定的な違いがあります。
PHPは各条件を左から右に
エルゴから順にチェックします。同じ「ベストプラクティス」を適用できます。
エルゴ:何もない –不平等。結論は前提から続いていません。を使用しているconstant == $variable
か、または短絡、評価の順序、または演算子の優先順位の$variable == constant
いずれにも接続されていません。
未定義の動作
の両方のオペランド!=
が常に評価されます。PHPの場合、評価順序(ここでは関係ありません)は実際には指定されていません(ドキュメントに記載されていない場合など)。