PHP では、文字列と整数を比較すると、予期しない結果が生じる可能性があります。具体的には、数字のみを含む文字列を整数 0 と比較すると、正しくないように見えても true と評価されることがあります。
動作の説明
PHP に記載されているとおりマニュアルによると、文字列が数値コンテキストで評価されると、文字列に含まれる文字に基づいて数値に変換されます。文字列に小数点、指数、または有効な数値形式が含まれている場合、その文字列は浮動小数点数として評価されます。ただし、数字のみが含まれる場合は、整数として評価されます。
文字列「d85d1d81b25614a3504a3d5601a9cb2e」の場合、数字のみが含まれます。したがって、整数 0 と比較する場合、文字列はまず整数 0 に変換され、真の比較が行われます。
2 番目の文字列が機能しない理由
2 番目の文字列「3581169b064f71be1630b321d3ca318f」は機能しません数字以外の文字「b」が含まれているためです。その結果、数値コンテキストで評価される場合、有効な数値形式とは見なされません。代わりに、文字列として評価され、整数 0 との比較は false と評価されます。
以上がPHP で文字列を 0 と比較すると True が返される場合があるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。