我在php中有对象,每个对象表示一个“item”以及与它相关的所有信息。将PHP对象传递给javascript
而当用户浏览页面时,应将这些对象传递给javascript。理想情况下,镜像相同的结构,所以我可以使用Raphael在我的网站上以单独的形状显示每个项目及其信息。
但是,你如何获得从PHP到JavaScript的对象?
我在php中有对象,每个对象表示一个“item”以及与它相关的所有信息。将PHP对象传递给javascript
而当用户浏览页面时,应将这些对象传递给javascript。理想情况下,镜像相同的结构,所以我可以使用Raphael在我的网站上以单独的形状显示每个项目及其信息。
但是,你如何获得从PHP到JavaScript的对象?
您可以将PHP对象转换为数组,然后使用JSON函数对其进行编码。之后,从JavaScript解码。下面是一些基本步骤:
Convert PHP的对象阵列。使用json_encode()
编码该PHP数组。使用JSON.parse
或者您可以使用jQuery.parseJSON
做
Pass JSON编码的数据PHP
解码JSON在JavaScript中。
这是一篇有关传递JavaScript object to a PHP object的有趣教程。您可能会通过观看其他特色/相关视频发现它很有用。
希望这会有所帮助。
您将使用JSON对PHP对象进行编码,以便可以通过Javascript访问它们。具体怎么做取决于你的应用程序。
为此,PHP具有json_encode和json_decode函数。
我用这个:
<script>
var js_data = '<?php echo json_encode($php_data); ?>';
var js_obj_data = JSON.parse(js_data);
</script>
$ php_data可自从简单数组对象的数组。
迟到的答案,但我很惊讶没有人提到什么,可以说是部署此功能的“正确”方式。
在您的对象上实现JsonSerializable接口。该接口定义了一个抽象方法,jsonSerialize
。该方法应该返回对象的数组表示形式。
当您尝试在对象上使用json_encode
时,将调用jsonSerialize
。您可以将此接口视为特定于本机JSON编码功能的“神奇方法”,相当于字符串的__toString
。
把它在行动,你有一个对象,看起来像这样:
class MyFoo implements JsonSerializable {
public $bar = 'hello';
public $baz = 'world';
public function jsonSerialize() {
return array(
'bar'=>$this->bar,
'baz'=>$this->baz
);
}
}
$myFooInstance= new MyFoo();
echo json_encode($myFooInstance); // {"bar":"hello","baz":"world"}
当我在我的项目实施这一时候,我经常在对象toArray
方法,它产生的阵列,并我已经jsonSerialize
使用它:
public function jsonSerialize() { return $this->toArray(); }
......这样我也可以使用数组形式的,如果我选择这样做。这也是方便的,如果你将实现对象的序列化与__sleep
文档
JsonSerializable
- http://www.php.net/manual/en/class.jsonserializable.phpjson_encode
- http://www.php.net/manual/en/function.json-encode.php可能是最好的方式去做。 – designcise 2014-07-02 00:28:13
'的eval()'是邪恶的。除非你无法提供帮助,否则不要使用它,特别是不要将它用于不可信的数据! – Bobby 2013-06-12 09:56:43
事实上,eval()是一个危险的方法来调用,而且,如果对象很大,处理起来可能会很慢。如果你忽略它的存在会更好,因为在大多数情况下,如果你需要将它用于真正的目的,那是因为你有一个架构问题。 – RPDeshaies 2014-02-21 13:43:57
最佳答案!像魅力一样工作 – 2017-05-27 17:11:01