RC2 の JavascriptHelper::object() がデータ型を見るようになりました
JavascriptHelper::object() といえば、配列を JSON 形式に変換してくれる便利なメソッドですが、どうやら RC2 から仕様が変わったようで、要素のデータ型を反映するようになりました。
つまり、以前は数値に見えるものは数値として出力していたところを、 is_string() などを参考にして、文字列型と判断された場合はダブルクォーテーションを付加して出力します。
たとえば以下のようなコードは正しく動作しなくなります。
// $complexData["visible"] にデータベースから取得した boolean 値が入っている時… var complex_data = eval($javascript->object($complexData) ); if (complex_data["visible"]) { // ↑たぶん 0 か 1 によって分岐したいのだろうが // 文字列は "0" でも真になるのでこの分岐の意味がなくなる }
対策は JSON 化する前にデータ型を boolean に変換するか、 data == “1″ のように文字列として比較するかのどちらかが簡単だと思います。
もしかしたら MySQL 以外なら問題なく動くかも。
