1--TEST-- 2ArrayObject/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 11var_dump($o[0] === $o[1]); 12var_dump($o[2] === $o); 13 14$s1 = serialize($o); 15$s2 = $o->serialize(); 16var_dump($s1); 17var_dump($s2); 18 19$o1 =unserialize($s1); 20 21var_dump($o1[0] === $o1[1]); 22var_dump($o1[2] === $o1); 23 24$o2 = new ArrayObject(); 25$o2->unserialize($s2); 26 27var_dump($o2[0] === $o2[1]); 28var_dump($o2[2] !== $o2); 29var_dump($o2[2][2] === $o2[2]); 30 31echo "#### Extending ArrayObject\n"; 32unset($o,$x,$s1,$s2,$o1,$o2); 33class 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 49var_dump($o[0] === $o[1]); 50var_dump($o[2] === $o); 51 52$s1 = serialize($o); 53$s2 = $o->serialize(); 54var_dump($s1); 55var_dump($s2); 56 57$o1 =unserialize($s1); 58 59var_dump($o1[0] === $o1[1]); 60var_dump($o1[2] === $o1); 61 62$o2 = new ArrayObject2(); 63$o2->unserialize($s2); 64 65var_dump($o2[0] === $o2[1]); 66var_dump($o2[2] !== $o2); 67var_dump($o2[2][2] === $o2[2]); 68?> 69--EXPECT-- 70bool(true) 71bool(true) 72string(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:{}}" 73string(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:{}" 74bool(true) 75bool(true) 76bool(true) 77bool(true) 78bool(true) 79#### Extending ArrayObject 80bool(true) 81bool(true) 82string(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:{}}" 83string(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:{}" 84bool(true) 85bool(true) 86bool(true) 87bool(true) 88bool(true) 89