ホームページ  >  記事  >  バックエンド開発  >  2 つの異なる文字列を「==」を使用して比較すると、PHP はそれらが等しいと判断します。これはどうすればよいでしょうか。

2 つの異なる文字列を「==」を使用して比較すると、PHP はそれらが等しいと判断します。これはどうすればよいでしょうか。

WBOY
WBOYオリジナル
2016-06-13 12:02:53867ブラウズ

2 つの異なる文字列を、「==」を使用して比較した後、PHP はそれらが等しいと見なすため、奇妙です
if ("0e1683" == "0e0473"){
echo "Equal";
}

「0e0983」と「0e0473」は比較すると等しいのですがなぜでしょうか?
------解決策------------------
あなたの数式は非常に特殊なので、置換を使用する必要があります型比較は
if("0e1683" === "0e0473")

のみ可能です。理由は次のとおりです。
php は比較中にデータ型を自動的に変換します。式 データ型は一貫しています。これは明らかではないでしょうか?異なるものは比較できません
たとえば、白い紙と紙幣は比較できません
php は、0e1683 と 0e0473 がどちらも科学的表記法の数値であることに気づき、数値的に比較しました
そして 0e1683 0×10の1683乗を表し、結果は0(0×任意の数値は0)です
同様に、0e0473も0です
0 == 0
式が成立します

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。