Heim > Backend-Entwicklung > PHP-Tutorial > PHP和javascript对象转换的疑问。

PHP和javascript对象转换的疑问。

WBOY
Freigeben: 2016-06-06 20:33:50
Original
1378 Leute haben es durchsucht

<code><?php $arr = array(
        array('name'=>'json', 'age'=>'16'), 
        array('name'=>'xml', 'age'=>'17')
);


$json =  json_encode($arr);             // 返回的是string
?>




<script type="text/javascript">


var info = <?php echo  $json ?>;        // 为什么不是字符串,而是自动转换成对象了?

alert(typeof info);


</script>


</code>
Nach dem Login kopieren
Nach dem Login kopieren

疑问就是为什么info不是字符串?

回复内容:

<code><?php $arr = array(
        array('name'=>'json', 'age'=>'16'), 
        array('name'=>'xml', 'age'=>'17')
);


$json =  json_encode($arr);             // 返回的是string
?>




<script type="text/javascript">


var info = <?php echo  $json ?>;        // 为什么不是字符串,而是自动转换成对象了?

alert(typeof info);


</script>


</code>
Nach dem Login kopieren
Nach dem Login kopieren

疑问就是为什么info不是字符串?

var info = "<?php echo $json ?>";这样才是字符串

你直接echo $json出来,得到文本:[{"name": "json", "age": 16}, {"name": "xml", "age": 17}],这段文本被插入了网页中,于是浏览器得到:

<code><br><br><script type="text/javascript">


var info = [{name: "json", age: 16}], [{name: "xml", age: 17}];

alert(typeof info);


</script>


</code>
Nach dem Login kopieren

这么一段东西,所以info是一个对象。

注意PHP不会在浏览器执行,虽然$json是一个字符串,但是这个字符串插入到了HTML文本中,这个文本被传到了浏览器端,浏览器拿到之后解析出来的当然是个对象了。

想要达到目的就:

<code>var info = '<?php echo $json; ?>'; //注意要用单引号,因为JSON字符串里用的是双引号
</code>
Nach dem Login kopieren

你这样返回的就是个json对象啊

同意@foolyou的说法,现在一般很少再直接嵌入PHP到html里了,可以打开f12看看,PHP echo的,print_r的什么一般就直接是文本,建议分开来写

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage