如果接收的是數字,那好辦,這樣就行了︰
<script> var num = <?php echo $num ?>; </script>
如果是字串,那外面記得要用 ' ' 或 " " 包起來︰
<script> var str = '<?php echo $str ?>'; </script>
如果字串裡面有跳脫字元,那就麻煩點,可能要改成下面這樣︰
<script> var str = '<?php echo str_replace( array("\\", "\r", "\n", "'"), array("\\\\", '\\r', '\\n', "\'"), $str) ?>'; </script>
如果你懶得用 str_replace ,那還有一招︰
<script> var str = <?php echo json_encode($str) ?>; </script>
需注意, json_encode 出來的字串已經被 " " 包住了,所以就不需要在外面再加 ' ' 或 " "了。
接收陣列一樣是用 json_encode ,注意關聯式陣列會轉成物件:
<?php $arr = array(1, 2, 3, 4, 5); $obj = array('a' => 1, 'b' => 2); ?> <script> var arr = <?php echo json_encode($arr) ?> // [1,2,3,4,5] var obj = <?php echo json_encode($obj) ?> // {"a":1,"b":2} </script>