js 中 php 输出数组变量 为什么要经过 json_encode

<?php

$a = ['a' => 'lala'];

?>

<script>

var a = <?php echo $a['a]; ?>
</script>

js 中嵌套php 代码的原理是什么? 我的理解是 php代码先执行 直接 将输出的字符串 lala 赋值给 js 变量 a 但是 实际结果 显然不是这样为什么? 考虑到 js不支持 关联数组 所以不行? 但是php代码 不是直接输出的字符串吗 难道还包含 值的类型 这其中 有什么原理?

翻译一下就懂了,你这个代码翻译到网页上显示的是

<script>
var a = lala;
<script>

lala就成了一个未声明的变量,所以程序无法执行,正确的赋值应该是

var a = '<?php echo $a['a'];?>';