一瞬そうかと思ったのですが、
stringにキャストしてから比較してるわけではないようです。
http://anond.hatelabo.jp/20130123190650
------------------------------------------------------------
if ('5e0' == 5) {
//こっちに分岐
echo "true";
} else {
echo "false";
}
if ('5e0' == '5') {
//こっちに分岐
echo "true";
} else {
echo "false";
}
$ArrTest = array(
'5e0' => ''
);
if (array_key_exists(5, $ArrTest) == true) {
echo "true";
} else {
//こっちに分岐
//そのまま比較しているわけでもstringに比較しているわけでもないらしい
echo "false";
}
exit;
PHP使っている人ならわかると思うけど、 PHPはif文での比較時に怪しげな型変換が起こる。 ポイントは以下の通り ・文字列型と数値型の比較の場合、 数値型と同じ型にキャストされ...
array の keyexistは 数値ではなく 文字にキャストされているのでは? 0を文字にキャストすると"0"だろ
コメントありがとうございます。元増田です。 一瞬そうかと思ったのですが、 stringにキャストしてから比較してるわけではないようです。 http://anond.hatelabo.jp/20130123190650 -------------------...
✕ //そのまま比較しているわけでもstringに比較しているわけでもないらしい ○ //そのまま比較しているわけでもstringにキャストしているわけでもないらしい