http://qiita.com/cither/items/b98cc4e237dcc8f7e51f
<?php
$array = array("hoge" => "fuga");
?>
<script>
var array = <?php echo json_encode($array, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT); ?>;
console.log(array); // Object { hoge: "fuga" }
</script>
function json_safe_encode($data){
return json_encode($data, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT);
}
<?php
$null = null;
$string = "hoge";
$emptyString = "";
$array = array("hoge", "fuga");
$empty_array = array();
$asoc_array = array("hoge" => 1, "fuga" => 2);
$boolean = false;
$str_boolean = "false";
$zero = 0;
$str_zero = "0";
$float = 0.12;
?>
<script id="script" src="script.js"
data-null ='<?php echo json_safe_encode($null); ?>'
data-string ='<?php echo json_safe_encode($string); ?>'
data-empty-string ='<?php echo json_safe_encode($empty_string); ?>'
data-array ='<?php echo json_safe_encode($array); ?>'
data-empty-array ='<?php echo json_safe_encode($empty_array); ?>'
data-asoc-array ='<?php echo json_safe_encode($asoc_array); ?>'
data-boolean ='<?php echo json_safe_encode($boolean); ?>'
data-str-boolean ='<?php echo json_safe_encode($str_boolean); ?>'
data-zero ='<?php echo json_safe_encode($zero); ?>'
data-str-zero ='<?php echo json_safe_encode($str_zero); ?>'
data-float ='<?php echo json_safe_encode($float); ?>'
></script>
var $script = $('#script');
var _null = JSON.parse($script.attr('data-null'));
var string = JSON.parse($script.attr('data-string'));
var emptyString = JSON.parse($script.attr('data-empty-string'));
var array = JSON.parse($script.attr('data-array'));
var emptyArray = JSON.parse($script.attr('data-empty-array'));
var asocArray = JSON.parse($script.attr('data-asoc-array'));
var boolean = JSON.parse($script.attr('data-boolean'));
var strBoolean = JSON.parse($script.attr('data-str-boolean'));
var zero = JSON.parse($script.attr('data-zero'));
var strZero = JSON.parse($script.attr('data-str-zero'));
var float = JSON.parse($script.attr('data-float'));
console.log(_null); // null
console.log(string); // "hoge"
console.log(emptyString); // ""
console.log(array); // Array [ "hoge", "fuga" ]
console.log(emptyArray); // Array [ ]
console.log(asocArray); // Object { hoge: 1, fuga: 2 }
console.log(boolean); // false
console.log(strBoolean); // "false"
console.log(zero); // 0
console.log(strZero); // "0"
console.log(float); // 0.12