【发布时间】:2021-08-12 17:57:01
【问题描述】:
我正在做一些广泛的测试,以了解如何将 PHP 和 JS 变量、对象、数组等成功地相互传递。关于这个主题有很多令人困惑的问题/答案。
据我的测试显示,我可以创建各种 PHP 对象:
$testarray = ["this", "is", "me"];
$testobject = (object) array("this"=>"that", "is"=>"was", "me"=>"him");
$teststring = "this is me";
$testint = 9758.25;
然后我可以通过json_encode()(仍在 PHP 中)传递它们
echo '<script>
var testarray = '.json_encode($testarray).';
var testobject = '.json_encode($testobject).';
var teststring = '.json_encode($teststring).';
var testint = '.json_encode($testint).';
</script>';
当运行时,结果是:
<script>
var testarray = ["this","is","me"];
var testobject = {"this":"that","is":"was","me":"him"};
var teststring = "this is me";
var testint = 9758.25;
<script>
我只是想确认这个结果是并且永远是完全有效的 JavaScript?我看不出有什么问题,但一些消息来源建议使用JSON.parse()。在这种情况下需要这样做吗?
我知道如果 JS 中的数组或对象通过JSON.stringify() 传递,我就必须解析它。
我也知道要将对象或数组从 JS 发送到 PHP,我必须使用 JSON.stringify() 和 json_decode() 使它们有效,但似乎 json_encode() 会导致有效的 JS 而无需使用JSON.parse()?
【问题讨论】:
标签: javascript php json parsing decode