Annotation of embedaddon/php/ext/standard/tests/serialize/bug31402.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Bug #31402 (unserialize() generates references when it should not)
! 3: --INI--
! 4: error_reporting=E_ALL&~E_STRICT&~E_DEPRECATED
! 5: --FILE--
! 6: <?php
! 7:
! 8: class TestX {
! 9: var $i;
! 10:
! 11: function __construct($i) {
! 12: $this->i = $i;
! 13: }
! 14: }
! 15:
! 16: class TestY {
! 17: var $A = array();
! 18: var $B;
! 19:
! 20: function __construct() {
! 21: $this->A[1] = new TestX(1);
! 22: $this->A[2] = & new TestX(2);
! 23: $this->A[3] = & $this->A[2];
! 24: $this->B = $this->A[1];
! 25: }
! 26: }
! 27:
! 28: $before = new TestY();
! 29: $ser = serialize($before);
! 30: $after = unserialize($ser);
! 31:
! 32: var_dump($before, $after);
! 33:
! 34: ?>
! 35: ===DONE===
! 36: --EXPECTF--
! 37: object(TestY)#%d (2) {
! 38: ["A"]=>
! 39: array(3) {
! 40: [1]=>
! 41: object(TestX)#%d (1) {
! 42: ["i"]=>
! 43: int(1)
! 44: }
! 45: [2]=>
! 46: &object(TestX)#%d (1) {
! 47: ["i"]=>
! 48: int(2)
! 49: }
! 50: [3]=>
! 51: &object(TestX)#%d (1) {
! 52: ["i"]=>
! 53: int(2)
! 54: }
! 55: }
! 56: ["B"]=>
! 57: object(TestX)#%d (1) {
! 58: ["i"]=>
! 59: int(1)
! 60: }
! 61: }
! 62: object(TestY)#%d (2) {
! 63: ["A"]=>
! 64: array(3) {
! 65: [1]=>
! 66: object(TestX)#%d (1) {
! 67: ["i"]=>
! 68: int(1)
! 69: }
! 70: [2]=>
! 71: &object(TestX)#%d (1) {
! 72: ["i"]=>
! 73: int(2)
! 74: }
! 75: [3]=>
! 76: &object(TestX)#%d (1) {
! 77: ["i"]=>
! 78: int(2)
! 79: }
! 80: }
! 81: ["B"]=>
! 82: object(TestX)#%d (1) {
! 83: ["i"]=>
! 84: int(1)
! 85: }
! 86: }
! 87: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>