我正在尝试将用 node.js 编写的应用程序移植到客户端的 php 中,我需要知道是否有办法将对象从 php 传递到 javascript,如下所示:
<script>
var a = <%- instance %>;
a.someMethod();
</script>
最好的办法是首先以 JSON 格式对数据进行编码。
你的数据
$data = array(
"foo" => "bar",
"hello" => "world"
);
你的脚本
<script>
var data = JSON.parse(<?php echo json_encode($data) ?>);
</script>
JSON_HEX_QUOT
JSON_HEX_TAG
JSON_HEX_AMP
JSON_HEX_APOS
JSON_NUMERIC_CHECK
JSON_PRETTY_PRINT
JSON_UNESCAPED_SLASHES
JSON_FORCE_OBJECT
JSON_UNESCAPED_UNICODE
reviver
并规定在返回之前如何转换最初由解析产生的值。另一种方法(上述方法)是提供异步 JSON API
您的 JavaScript 可以拨打电话
// using (e.g.,) jquery
var loadPeople = function(data) {
console.log(data);
};
$.getJSON('/api/people.json').done(loadPeople);
您的 PHP 服务器必须响应这条路线
// response to /api/people.json
header("Content-type: application/json");
var $data = array(
"foo" => "bar",
"hello" => "world"
);
echo json_encode($data);
exit;
JavaScript 控制台输出
{foo: "bar", hello: "world"}
您可以使用 json 将数据从 PHP 传递到 JS。
它可能是这样的:
$toJs['myObj'] = $myObj;
$toJs['whatElse'] = $otherVar;
<script>fromPHP = JSON.parse('<?php echo json_encode($toJs) ?>')</script>
console.log(fromPHP.myObj);
你可以简单地做到这一点
<script>
var a = <? = $phpvar;?>;
a.someMethod();
</script>
编辑:没关系。我误读并认为您的意思是“变量”而不是对象。