diff --git a/reference/json/jsonserializable/jsonserialize.xml b/reference/json/jsonserializable/jsonserialize.xml
index f735fb14a4..39a5ded7ba 100644
--- a/reference/json/jsonserializable/jsonserialize.xml
+++ b/reference/json/jsonserializable/jsonserialize.xml
@@ -14,11 +14,9 @@
-
+ Serializes the object to a value that can be serialized natively by
+ json_encode.
-
- &warn.undocumented.func;
-
@@ -29,11 +27,141 @@
&reftitle.returnvalues;
- Return data which should be serialized by json_encode.
+ Returns data which can be serialized by json_encode,
+ which is a value of any type other than a resource.
+
+ &reftitle.examples;
+
+
+
+ JsonSerializable::jsonSerialize example
+ returning an array
+
+
+array = $array;
+ }
+ public function jsonSerialize() {
+ return $this->array;
+ }
+}
+
+$array = [1, 2, 3];
+echo json_encode(new ArrayValue($array), JSON_PRETTY_PRINT);
+?>
+]]>
+
+ &example.outputs;
+
+
+
+
+
+
+ JsonSerializable::jsonSerialize example
+ returning an associative array
+
+
+array = $array;
+ }
+
+ public function jsonSerialize() {
+ return $this->array;
+ }
+}
+
+$array = ['foo' => 'bar', 'quux' => 'baz'];
+echo json_encode(new ArrayValue($array), JSON_PRETTY_PRINT);
+?>
+]]>
+
+ &example.outputs;
+
+
+
+
+
+
+ JsonSerializable::jsonSerialize example
+ returning an integer
+
+
+number = (integer) $number;
+ }
+
+ public function jsonSerialize() {
+ return $this->number;
+ }
+}
+
+echo json_encode(new IntegerValue(1), JSON_PRETTY_PRINT);
+?>
+]]>
+
+ &example.outputs;
+
+
+
+
+
+
+ JsonSerializable::jsonSerialize example
+ returning an integer
+
+
+string = (string) $string;
+ }
+
+ public function jsonSerialize() {
+ return $this->string;
+ }
+}
+
+echo json_encode(new StringValue('Hello!'), JSON_PRETTY_PRINT);
+?>
+]]>
+
+ &example.outputs;
+
+
+
+
+
+