私はJava=に慣れているため、常に条件が左から右に解釈されると考えています。つまり、null != $obj
および$obj != null
これは、PHPには当てはまらないようです。
PHPで常に左側のnull
から始めると、何か問題がありますか?JavaまたはPHP条件を処理するときに他のことをするように自分自身を訓練する必要がありますか?
可能であれば、常に厳密な比較演算子===
および!==
を使用することをお勧めします。実際に緩い比較演算子が必要になるときがわかります。
私はあなたがいくつかのことについて混乱するかもしれないと信じています:
PHPマニュアルには、「PHPは各条件を左から右に順番にチェックする」と書かれています。
番号、
PHPは条件を左から右に評価しますが、結果が判明すると停止します。
expr1 && expr2
expr1
がfalse
に評価される場合、expr2
は評価されません。これは短絡と呼ばれ、それは あまりよくないようです-documented –この問題に関する他の公式のメモは見つかりませんでした例1のコメント。しかし、これはよく知られている既知の機能です。
私はJava=に慣れているため、条件は左から右に解釈されると常に考えています。つまり、nullに重要な違いがある!= $ objと$ obj!= null
PHPは、左から右に順番に各条件をチェックします
Ergo:同じ「ベストプラクティス」を適用できます
エルゴ:nothing–不等分割。結論は前提から続いていません。 constant == $variable
または$variable == constant
の使用は、short-circuiting、評価の順序、または演算子の優先順位。
!=
の両方のオペランドが常に評価されます。 PHPの場合、評価順序(ここでは関係ありません)は実際には nspecified です(ドキュメントにはありません)。
あなたの特定のケースに関して、別のアプローチは、組み込みのphp関数is_nullを使用することです。つまり、is_null($ mixedValue)で終わることになり、すべての作業が自動的に行われ、型の比較などすべてが適切に行われます。