PHP を使用して文字列比較を行ったときに、次のコードに示すような落とし穴に遭遇しました。 リーリー
最初の結果は true で、2 番目の結果は false です。公式文書を眺めてみると、1つ目を強制的に数字の0に変換するなら2つ目は134に強制変換するべきですが、134に変換するなら3つ目は正しいはずです。 2つの文字列を出力したところ、結果が非常におかしく、公式ドキュメントを読んでも理解できませんでした。アドバイスをお願いします。
ringa_lee2017-06-16 09:20:38
http://www.php.net/manual/zh/...
var_dump('0134b40fsbi94u8'=='134'); //false は比較です
全て文字列なので最初の桁を比較します 1桁目の比較結果は0と1の比較なので偽になります
リーリー リーリー另外 字符串之间的不建议使用比较运算符直接去比较大小,要是在需要比较php也提供了一些字符的比较函数
学习ing2017-06-16 09:20:38
異なるタイプのデータを比較するには、一致 === 演算子と不一致 !== 演算子を使用するのが最善です。
比較演算子一致 === と不一致 !== は型をチェックするためです。
リーリー
さらに、PHP は一連の型チェック関数も提供します:
リーリー
一部の関数は、次のような型チェック パラメーターも提供するため、注意が必要です。 リーリー3 番目のパラメータの値が true の場合、関数は型が同じかどうかもチェックします。
さらに、PHP は、2 つの配列または 2 つのオブジェクトが等しいかどうかを比較する比較演算子 ==,!=,===,!== もサポートしています。
リーリーPHP は、2 つのオブジェクトが等しいかどうかを判断するための比較演算子 (==,!=,===,!==) もサポートしています:
リーリー仅有的幸福2017-06-16 09:20:38
最初の文字列は科学表記法に正確に準拠しています。
型制限が緩い言語の場合、そのような落とし穴がよくニュースになります。
厳密に型指定されたチェックを使用するようにしてください