JsonSerializable::jsonSerialize
指定需要被序列化成JSON 的數據
函數: JsonSerializable::jsonSerialize()
適用版本: PHP 5 >= 5.4.0, PHP 7
用法: JsonSerializable::jsonSerialize() 方法用於序列化一個實現了JsonSerializable 接口的對象。當對像被編碼為JSON 格式時,該方法會被自動調用。
示例:
class MyObject implements JsonSerializable { private $data; public function __construct($data) { $this->data = $data; } public function jsonSerialize() { return $this->data; } } $obj = new MyObject(array('foo' => 'bar', 'baz' => 'qux')); echo json_encode($obj);
輸出:
{"foo":"bar","baz":"qux"}
在上面的示例中,我們定義了一個名為MyObject
的類,並實現了JsonSerializable
接口。該接口只有一個方法jsonSerialize()
,用於返回需要被序列化為JSON 的數據。
在jsonSerialize()
方法中,我們簡單地返回了對象的$data
屬性。
然後,我們創建了一個MyObject
的實例,並將一個關聯數組作為構造函數的參數。
最後,我們使用json_encode()
函數將該對象編碼為JSON 字符串,並將其輸出。
結果是一個包含了$data
屬性的JSON 對象: {"foo":"bar","baz":"qux"}
。
請注意,當對像被編碼為JSON 時, jsonSerialize()
方法會自動被調用,以提供需要被序列化的數據。這意味著你無需手動調用該方法。