Annotation of embedaddon/php/ext/spl/tests/arrayObject_clone_basic3.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: SPL: Cloning nested ArrayObjects. 
                      3: --FILE--
                      4: <?php
                      5: class C {
                      6:        public $p = 'C::p.orig';
                      7: }
                      8: 
                      9: $wrappedObject = new C;
                     10: $innerArrayObject = new ArrayObject($wrappedObject);
                     11: 
                     12: $outerArrayObject =  new ArrayObject($innerArrayObject);
                     13: 
                     14: $wrappedObject->dynamic1 = 'new prop added to $wrappedObject before clone';
                     15: $clonedOuterArrayObject = clone $outerArrayObject;
                     16: $wrappedObject->dynamic2 = 'new prop added to $wrappedObject after clone';
                     17: 
                     18: $innerArrayObject['new.iAO'] = 'new element added $innerArrayObject';
                     19: $outerArrayObject['new.oAO'] = 'new element added to $outerArrayObject';
                     20: $clonedOuterArrayObject['new.coAO'] = 'new element added to $clonedOuterArrayObject';
                     21: 
                     22: var_dump($wrappedObject, $innerArrayObject, $outerArrayObject, $clonedOuterArrayObject);
                     23: ?>
                     24: --EXPECTF--
                     25: object(C)#1 (5) {
                     26:   ["p"]=>
                     27:   string(9) "C::p.orig"
                     28:   ["dynamic1"]=>
                     29:   string(45) "new prop added to $wrappedObject before clone"
                     30:   ["dynamic2"]=>
                     31:   string(44) "new prop added to $wrappedObject after clone"
                     32:   ["new.iAO"]=>
                     33:   string(35) "new element added $innerArrayObject"
                     34:   ["new.oAO"]=>
                     35:   string(38) "new element added to $outerArrayObject"
                     36: }
                     37: object(ArrayObject)#2 (1) {
                     38:   ["storage":"ArrayObject":private]=>
                     39:   object(C)#1 (5) {
                     40:     ["p"]=>
                     41:     string(9) "C::p.orig"
                     42:     ["dynamic1"]=>
                     43:     string(45) "new prop added to $wrappedObject before clone"
                     44:     ["dynamic2"]=>
                     45:     string(44) "new prop added to $wrappedObject after clone"
                     46:     ["new.iAO"]=>
                     47:     string(35) "new element added $innerArrayObject"
                     48:     ["new.oAO"]=>
                     49:     string(38) "new element added to $outerArrayObject"
                     50:   }
                     51: }
                     52: object(ArrayObject)#3 (1) {
                     53:   ["storage":"ArrayObject":private]=>
                     54:   object(ArrayObject)#2 (1) {
                     55:     ["storage":"ArrayObject":private]=>
                     56:     object(C)#1 (5) {
                     57:       ["p"]=>
                     58:       string(9) "C::p.orig"
                     59:       ["dynamic1"]=>
                     60:       string(45) "new prop added to $wrappedObject before clone"
                     61:       ["dynamic2"]=>
                     62:       string(44) "new prop added to $wrappedObject after clone"
                     63:       ["new.iAO"]=>
                     64:       string(35) "new element added $innerArrayObject"
                     65:       ["new.oAO"]=>
                     66:       string(38) "new element added to $outerArrayObject"
                     67:     }
                     68:   }
                     69: }
                     70: object(ArrayObject)#4 (1) {
                     71:   ["storage":"ArrayObject":private]=>
                     72:   array(3) {
                     73:     ["p"]=>
                     74:     string(9) "C::p.orig"
                     75:     ["dynamic1"]=>
                     76:     string(45) "new prop added to $wrappedObject before clone"
                     77:     ["new.coAO"]=>
                     78:     string(44) "new element added to $clonedOuterArrayObject"
                     79:   }
                     80: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>