Annotation of embedaddon/php/ext/spl/tests/bug45826.phpt, revision 1.1.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>