我正在尝试将用node.js编写的应用程序移植到客户端的php中,我需要知道是否有办法将对象从php传递到javascript,如下所示:
<script>
var a = <%- instance %>;
a.someMethod();
</script>
答案 0 :(得分:1)
最好的办法是先用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"}
答案 1 :(得分:0)
您可以使用json将数据从PHP传递到JS。
可能是这样的:
$toJs['myObj'] = $myObj;
$toJs['whatElse'] = $otherVar;
在您的视图中<script>fromPHP = JSON.parse('<?php echo json_encode($toJs) ?>')</script>
console.log(fromPHP.myObj);
答案 2 :(得分:-2)
你可以简单地这样做
<script>
var a = <? = $phpvar;?>;
a.someMethod();
</script>
编辑:没关系。我误读并认为你的意思是“变量”而不是对象。