Unknown::Programming このページをアンテナに追加 RSSフィード

2009-06-18 悔悟

PHP「"0x0A" == "10"はTRUEですがよろしいですか」

ぼく「えっ」

PHP「"0x0A" == "10"はTRUEになりますが」

ぼく「いえFALSEです」

PHP「えっ」

ぼく「えっ」

PHP「まだ比較したことがないということでしょうか」

ぼく「えっ」

PHP「えっ」

ぼく「変化するってことですか」

PHP「なにがですか」

ぼく「型が」

PHP「ああ文字列でも整数っぽい文字列なら自動で型変換されますよ」

ぼく「そうなんだすごい」

PHP「では比較いたしましょうかTRUEですよ」

ぼく「でも"0x0A"は明示的にキャストしたら0になりますよね」

PHP「えっ」

ぼく「えっ」

PHP「ああ16進数のことなら比較の場合のみ10進数に自動で変換してから比較するんですよ」

ぼく「なにそれこわい

PHP「"0x0A" == "+000010.0000000000000001"の場合もTRUEになります」

ぼく「なにそれもこわい」

PHP「えっ」

ぼく「えっ」




参考

PHPの比較の素晴らしさ加減は正常


勢いでやった。後悔はしている。

anpontan-pokananpontan-pokan 2009/06/19 11:46 PHP Version 5.1.6で"10" == "+000010.0000000000000001"がFALSEになった

anpontan-pokananpontan-pokan 2009/06/19 11:47 ミスw
"10" == "+000010.0000000000000001"だとTRUEだけど
"0x0A" == "+000010.0000000000000001"だとFALSEでした

fbisfbis 2009/06/19 11:54 さすがPHPですねー。こちらの環境はPHP 5.2.8です。
まあネタとして消化してやってください。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証