検索

ホームページ  >  に質問  >  本文

PHPの文字列比較

PHP を使用して文字列比較を行ったときに、次のコードに示すような落とし穴に遭遇しました。 リーリー

最初の結果は true で、2 番目の結果は false です。公式文書を眺めてみると、1つ目を強制的に数字の0に変換するなら2つ目は134に強制変換するべきですが、134に変換するなら3つ目は正しいはずです。

2つの文字列を出力したところ、結果が非​​常におかしく、公式ドキュメントを読んでも理解できませんでした。アドバイスをお願いします。

typechotypecho2765日前1004

全員に返信(4)返信します

  • ringa_lee

    ringa_lee2017-06-16 09:20:38

    http://www.php.net/manual/zh/...

    var_dump('0134b40fsbi94u8'=='134'); //false は比較です

    全て文字列なので最初の桁を比較します 1桁目の比較結果は0と1の比較なので偽になります

    リーリー リーリー

    另外 字符串之间的不建议使用比较运算符直接去比较大小,要是在需要比较php也提供了一些字符的比较函数

    返事
    0
  • 学习ing

    学习ing2017-06-16 09:20:38

    異なるタイプのデータを比較するには、一致 === 演算子と不一致 !== 演算子を使用するのが最善です。
    比較演算子一致 === と不一致 !== は型をチェックするためです。 リーリー

    つまり、比較するときは、== と!= の代わりに === と!== を使用するようにしてください。

    さらに、PHP は一連の型チェック関数も提供します:

    リーリー

    一部の関数は、次のような型チェック パラメーターも提供するため、注意が必要です。 リーリー

    3 番目のパラメータの値が true の場合、関数は型が同じかどうかもチェックします。

    さらに、PHP は、2 つの配列または 2 つのオブジェクトが等しいかどうかを比較する比較演算子 ==,!=,===,!== もサポートしています。

    リーリー

    PHP は、2 つのオブジェクトが等しいかどうかを判断するための比較演算子 (==,!=,===,!==) もサポートしています:

    リーリー

    返事
    0
  • 仅有的幸福

    仅有的幸福2017-06-16 09:20:38

    最初の文字列は科学表記法に正確に準拠しています。
    型制限が緩い言語の場合、そのような落とし穴がよくニュースになります。

    厳密に型指定されたチェックを使用するようにしてください

    返事
    0
  • 習慣沉默

    習慣沉默2017-06-16 09:20:38

    PHP のような弱く型付けされた言語の場合は、===就别用==

    を使用できます

    返事
    0
  • キャンセル返事