PHP 5.4.4で==演算子の挙動が変わっていた

あるAnonymous Coward 曰く、

PHPの==演算子は複雑な挙動をすることが知られているが、2012年にリリースされたPHP 5.4.4で変更された==演算子の挙動についての話が話題になっている。

PHP 5.4.4より前は、「'9223372036854775807' == '79223372036854775808'」という式がtrueを返していたのが、PHP 5.4.4ではこれがfalseを返すように変更された、という話なのだが(Bug #54547 wrong equality of string numbers)、この変更により、今度は「'9999999999999999999.0' == '9999999999999999999.1'」という式がtrueになってしまう、という別の問題が発生してしまった模様。

こうなってしまう原因については元記事で説明されているが、PHPにおいて「==」演算子は数値文字列同士を比較する場合、整数や浮動小数点に変換してから比較を行うという挙動をするためらしい。

スラッシュドットのコメントを読む | スラッシュドットにコメントを書く | デベロッパーセクション | プログラミング | デベロッパー | PHP

あわせて読みたい

スラドの記事をもっと見る 2014年8月11日のIT記事
この記事にコメントする

\ みんなに教えてあげよう! /

新着トピックス

ITニュースアクセスランキング

ITランキングをもっと見る

コメントランキング

コメントランキングをもっと見る

トレンドの人気のキーワード一覧

新着キーワード一覧

このカテゴリーについて

最新IT業界情報やiPhoneやAndroidやガジェット、話題のサービス、IoT情報、スタートアップにまつわるニュースをお届け中。