PHP json_encode
返回包含所提供值的JSON表示形式的字符串。php.net
但是它返回JavaScript对象,而不是Json字符串:
<script>
var app = <?php echo json_encode($array); ?>;
alert(app.name)
</script>
发布于 2022-07-01 12:10:35
但是它返回JavaScript对象,而不是Json字符串。
在这里跳过几步:
json_encode
在PHP中返回一个字符串echo
语句。将PHP脚本重写为等价的内容可能会有所帮助:
echo "
<script>
var app = " . json_encode($array) . ";
alert(app.name)
</script>";
所以现在很明显,PHP发送了一个字符串,它恰好表示有效的JavaScript --包含在一个<script>
标记中。JSON只是长字符串的一部分,稍后浏览器将解析该字符串,JavaScript部分由JavaScript引擎解析。
发布于 2022-07-01 12:42:54
但是它返回JavaScript对象,而不是Json字符串:
上下文很重要,请考虑以下代码:
<?php
$array = ['name' => 'John Doe'];
$string = json_encode($array);
var_dump($string);
执行,产生:
$ php index.php
string(19) "{"name":"John Doe"}"
string(19)
表示变量是一个由19个字符组成的字符串。字符串可以被js解释为一个对象这一事实在这里并不重要,对于php来说,它正在产生一个字符串。
https://stackoverflow.com/questions/72834100
复制