22:07Debian(squeeze/testing)にソースからビルドして入れたところ、やっぱり消えました。symfonyだとsfToolkit::arrayDeepMerge()が2配列のキーをarray_mergeしたものをarray_uniqueしてますな。みても影響があります。array_unique($keys);Set::sortで消えるgrepしただけで影響がありそうだった、Setクラスを調べてみました。Set::sort()でソートすると、値が消えるサンプルを作りました。))消えたッ!!Set::sort()で、array_uniqueを使っている部分で第2引数にSORT_STRINGを付ければ、5.2.6の挙動と同じになりました。消える組み合わせひとつになりました。浮動小数点数を使わなくても、'0'と'Z'とかでも消えると思います。連想配列のキーは整数にできる場合は数値になるので、今回のarray_uniqueの仕様変更が凶悪に効いてきます。))本当に消えた...なぜ?ちょっと調べてみました。...わかった、と思います。'0'というキー配列を定義したあとvar_dumpしてみると、intになりました。true0と'Z'が等しいとなります。この比較演算子の挙動はhttp://jp.php.net/manual/ja/language.operators.comparison.phpを見れば分かりますが、stringとintの比較はstring型を数値に変換してから比較します(int型とは限らない)。(string→数値の変換については...以下略)まとめCakePHPでも影響ありました。PHPって比較演算子で推移律が成立しない場合がある言語だったんですね。Managerはてなブログをはじめよう!tenkomaさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。