Annotation of embedaddon/php/ext/json/tests/bug61978.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Bug #61978 (Object recursion not detected for classes that implement JsonSerializable)
3: --SKIPIF--
4: <?php if (!extension_loaded("json")) print "skip"; ?>
5: --FILE--
6: <?php
7:
8: class JsonTest1 {
9: public $test;
10: public $me;
11: public function __construct() {
12: $this->test = '123';
13: $this->me = $this;
14: }
15: }
16:
17: class JsonTest2 implements JsonSerializable {
18: public $test;
19: public function __construct() {
20: $this->test = '123';
21: }
22: public function jsonSerialize() {
23: return array(
24: 'test' => $this->test,
25: 'me' => $this
26: );
27: }
28: }
29:
30:
31: $obj1 = new JsonTest1();
32: var_dump(json_encode($obj1));
33:
34: echo "\n==\n";
35:
36: $obj2 = new JsonTest2();
37: var_dump(json_encode($obj2));
38:
39: ?>
40: --EXPECTF--
41: Warning: json_encode(): recursion detected in %s on line %d
42: string(44) "{"test":"123","me":{"test":"123","me":null}}"
43:
44: ==
45:
46: Warning: json_encode(): recursion detected in %s on line %d
47: string(44) "{"test":"123","me":{"test":"123","me":null}}"
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>