重複の可能性:
php ==vs===演算子
PHPでの===
、との違いは理解していますが、私はいつも自分が好きだと感じていますが、本当の理由はありません。PHP.netのドキュメントには、いくつかの組み込み関数の戻り値をチェックするために使用する必要があるという「警告」がよくあります。だから私の質問は、なぜ私は別の演算子のセットを使用する必要があるのですか?!==
==
!=
===
!==
===
どうもありがとう :)。
重複の可能性:
php ==vs===演算子
PHPでの===
、との違いは理解していますが、私はいつも自分が好きだと感じていますが、本当の理由はありません。PHP.netのドキュメントには、いくつかの組み込み関数の戻り値をチェックするために使用する必要があるという「警告」がよくあります。だから私の質問は、なぜ私は別の演算子のセットを使用する必要があるのですか?!==
==
!=
===
!==
===
どうもありがとう :)。
自動型変換は、あなた(または将来コードを維持しなければならない開発者)が期待する方法で変換しない場合、予期しない誤検知と誤検知につながる可能性があります(そして、型会話のルールは通常複雑であり、言語なので、そのような混乱の余地はたくさんあります)。
タイプ会話が必要な場合を除いて、常に3文字バージョンを使用してください。
===
また!==
、両方のオペランドが同じタイプであることに注意する場合にのみ使用する必要があります。
それ以外の場合は、-使用==
して!=
-暗黙のキャストがphpを愛するものだからです
最も一般的な理由は、関数が数値/文字列を返し、エラー時にfalseを返す可能性があることです。0が有効な結果であり、falseがエラーを示している場合は、===を使用して区別する必要があります。ただし、常に===を使用すると、予期しない動作が発生する可能性があります。たとえば、nullが返され、無効な値と見なされる場合でも、型チェックはfalseのみを対象としています。したがって、データが独自のソースコード/ PHP関数からのものであり、無効な値が1つだけであることがわかっている場合は、厳密なチェックを使用してください。ほとんどの場合、==は安全な選択ですが、特に外部データを扱う場合は、それを制御することはできません。
===
また!==
、成功した場合は0を返し、失敗した場合はFALSEを返す可能性のある関数を使用する場合は重要です。PHPでは、0はFALSEにも等しく、関数が失敗したという結論につながります。
if(somefunction() == 0) {
// Do something
}
関数が正常に終了したときに何らかの関数が0を返し、失敗したときにFALSEを返すと仮定すると、上記のスニペットは、戻りコードがFALSEのときにトリガーされます。
を使用===
すると、応答が実際に0の場合にのみトリガーされるため、これを防ぐことができます。