Annotation of embedaddon/php/ext/spl/tests/bug45826.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: ArrayObject/ArrayIterator : serialization
! 3: --FILE--
! 4: <?php
! 5: $o = new ArrayObject();
! 6: $y = new StdClass;
! 7: $o->append($y);
! 8: $o->append($y);
! 9: $o->append($o);
! 10:
! 11: var_dump($o[0] === $o[1]);
! 12: var_dump($o[2] === $o);
! 13:
! 14: $s1 = serialize($o);
! 15: $s2 = $o->serialize();
! 16: var_dump($s1);
! 17: var_dump($s2);
! 18:
! 19: $o1 =unserialize($s1);
! 20:
! 21: var_dump($o1[0] === $o1[1]);
! 22: var_dump($o1[2] === $o1);
! 23:
! 24: $o2 = new ArrayObject();
! 25: $o2->unserialize($s2);
! 26:
! 27: var_dump($o2[0] === $o2[1]);
! 28: var_dump($o2[2] !== $o2);
! 29: var_dump($o2[2][2] === $o2[2]);
! 30:
! 31: echo "#### Extending ArrayObject\n";
! 32: unset($o,$x,$s1,$s2,$o1,$o2);
! 33: class ArrayObject2 extends ArrayObject {
! 34: public function serialize() {
! 35: return parent::serialize();
! 36: }
! 37:
! 38: public function unserialize($s) {
! 39: return parent::unserialize($s);
! 40: }
! 41: }
! 42:
! 43: $o = new ArrayObject2();
! 44: $y = new StdClass;
! 45: $o->append($y);
! 46: $o->append($y);
! 47: $o->append($o);
! 48:
! 49: var_dump($o[0] === $o[1]);
! 50: var_dump($o[2] === $o);
! 51:
! 52: $s1 = serialize($o);
! 53: $s2 = $o->serialize();
! 54: var_dump($s1);
! 55: var_dump($s2);
! 56:
! 57: $o1 =unserialize($s1);
! 58:
! 59: var_dump($o1[0] === $o1[1]);
! 60: var_dump($o1[2] === $o1);
! 61:
! 62: $o2 = new ArrayObject2();
! 63: $o2->unserialize($s2);
! 64:
! 65: var_dump($o2[0] === $o2[1]);
! 66: var_dump($o2[2] !== $o2);
! 67: var_dump($o2[2][2] === $o2[2]);
! 68: ?>
! 69: --EXPECT--
! 70: bool(true)
! 71: bool(true)
! 72: string(84) "C:11:"ArrayObject":60:{x:i:0;a:3:{i:0;O:8:"stdClass":0:{}i:1;r:4;i:2;r:1;};m:a:0:{}}"
! 73: string(125) "x:i:0;a:3:{i:0;O:8:"stdClass":0:{}i:1;r:3;i:2;C:11:"ArrayObject":45:{x:i:0;a:3:{i:0;r:3;i:1;r:3;i:2;r:5;};m:a:0:{}}};m:a:0:{}"
! 74: bool(true)
! 75: bool(true)
! 76: bool(true)
! 77: bool(true)
! 78: bool(true)
! 79: #### Extending ArrayObject
! 80: bool(true)
! 81: bool(true)
! 82: string(85) "C:12:"ArrayObject2":60:{x:i:0;a:3:{i:0;O:8:"stdClass":0:{}i:1;r:4;i:2;r:1;};m:a:0:{}}"
! 83: string(126) "x:i:0;a:3:{i:0;O:8:"stdClass":0:{}i:1;r:3;i:2;C:12:"ArrayObject2":45:{x:i:0;a:3:{i:0;r:3;i:1;r:3;i:2;r:5;};m:a:0:{}}};m:a:0:{}"
! 84: bool(true)
! 85: bool(true)
! 86: bool(true)
! 87: bool(true)
! 88: bool(true)
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>