Annotation of embedaddon/php/ext/json/tests/bug61978.phpt, revision 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>