将 PHP 对象传递给 javascript
我在php中有一个对象,每个对象都代表一个“项目”以及与之相关的所有信息。
当用户浏览页面时,这些对象应该传递给javascript。理想情况下,镜像相同的结构,因此我可以使用Raphael在我的网站上将每个项目及其信息显示为单独的形状。
但是,如何将对象从php获取到javascript?
我在php中有一个对象,每个对象都代表一个“项目”以及与之相关的所有信息。
当用户浏览页面时,这些对象应该传递给javascript。理想情况下,镜像相同的结构,因此我可以使用Raphael在我的网站上将每个项目及其信息显示为单独的形状。
但是,如何将对象从php获取到javascript?
您可以将 PHP 对象转换为数组,然后使用 JSON 函数对其进行编码。之后,从JavaScript解码它。以下是一些基本步骤:
将 PHP 对象转换为数组。
使用 json_encode()
对该 PHP 数组进行编码。
通过JSON 编码数据到 PHP
使用JSON.parse
从JavaScript解码JSON,或者您可以使用jQuery.parseJSON
来做到这一点。
这是一个关于将 JavaScript 对象传递给 PHP 对象的有趣教程。您可能会通过观看其他一些精选/相关视频来发现它很有用。
希望这有帮助。
答案迟到,但我感到非常惊讶的是,没有人提到什么是部署此功能的“正确”方法。
在对象上实现 JsonSerializable 接口。此接口定义了一个抽象方法 。该方法应返回对象的数组表示形式。jsonSerialize
当您尝试在对象上使用时,将调用 。您可以将此接口视为特定于本机 JSON 编码函数的一种“魔术方法”,等效于 for 字符串。jsonSerialize
json_encode
__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://php.net/manual/en/class.jsonserializable.php
json_encode
- http://php.net/manual/en/function.json-encode.php