ホームページ  >  記事  >  php教程  >  PHP string == 比較演算子の副作用

PHP string == 比較演算子の副作用

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

コードをコピーします コードは次のとおりです:


$a = '212345678912000005';
$b = '212345678912000001'; 🎜>var_dump ($a == $b);

このコードの出力は bool(true) であり、この判断により 2 つの特性が等しいと結論付けられます。 in_array() 関数 3 つのパラメーターが false であるか設定されていない場合、その理由は、まず文字列が数値であるかどうかを判断し、次にそれを long または double (C 言語のデータ型) に変換してから、zendi_smart_strcmp を使用することです。ソースコード内のコメントには、ステートメントがオーバーフローを考慮していることが示されています。 {
/* 両方の値がオーバーフローしており、同じ符号を持っています。
* そのため、数値比較は不正確になります */

goto string_cmp ; } dval1 と dval2 は 2 つの文字列を double 型に変換した後の値ですが、なぜこの判断が正しくないのでしょうか。 ...

解決策は、3 つの等号「==」を使用します。2 つの等号「==」の代わりに、in_array() 関数は 3 番目のパラメータを true に設定します: in_array('val', $array 、 真実)。

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