Annotation of embedaddon/php/ext/spl/tests/bug42654.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: Bug #42654 (RecursiveIteratorIterator modifies only part of leaves)
        !             3: --FILE--
        !             4: <?php
        !             5: $data = array(1 => 'val1',
        !             6:               array(2 => 'val2',
        !             7:                     array(3 => 'val3'),
        !             8:                    ),
        !             9:               4 => 'val4'
        !            10:              );
        !            11: 
        !            12: $iterator = new RecursiveIteratorIterator(new
        !            13: RecursiveArrayIterator($data));
        !            14: foreach($iterator as $foo) {
        !            15:     $key = $iterator->key();
        !            16:     echo "update $key\n";
        !            17:     var_dump($iterator->getInnerIterator());
        !            18:     $iterator->offsetSet($key, 'alter');
        !            19:     var_dump($iterator->getInnerIterator());
        !            20: }
        !            21: $copy = $iterator->getArrayCopy();
        !            22: var_dump($copy);
        !            23: ?>
        !            24: --EXPECTF--
        !            25: update 1
        !            26: object(RecursiveArrayIterator)#%d (1) {
        !            27:   ["storage":"ArrayIterator":private]=>
        !            28:   array(3) {
        !            29:     [1]=>
        !            30:     string(4) "val1"
        !            31:     [2]=>
        !            32:     array(2) {
        !            33:       [2]=>
        !            34:       string(4) "val2"
        !            35:       [3]=>
        !            36:       array(1) {
        !            37:         [3]=>
        !            38:         string(4) "val3"
        !            39:       }
        !            40:     }
        !            41:     [4]=>
        !            42:     string(4) "val4"
        !            43:   }
        !            44: }
        !            45: object(RecursiveArrayIterator)#%d (1) {
        !            46:   ["storage":"ArrayIterator":private]=>
        !            47:   array(3) {
        !            48:     [1]=>
        !            49:     string(5) "alter"
        !            50:     [2]=>
        !            51:     array(2) {
        !            52:       [2]=>
        !            53:       string(4) "val2"
        !            54:       [3]=>
        !            55:       array(1) {
        !            56:         [3]=>
        !            57:         string(4) "val3"
        !            58:       }
        !            59:     }
        !            60:     [4]=>
        !            61:     string(4) "val4"
        !            62:   }
        !            63: }
        !            64: update 2
        !            65: object(RecursiveArrayIterator)#%d (1) {
        !            66:   ["storage":"ArrayIterator":private]=>
        !            67:   array(2) {
        !            68:     [2]=>
        !            69:     string(4) "val2"
        !            70:     [3]=>
        !            71:     array(1) {
        !            72:       [3]=>
        !            73:       string(4) "val3"
        !            74:     }
        !            75:   }
        !            76: }
        !            77: object(RecursiveArrayIterator)#%d (1) {
        !            78:   ["storage":"ArrayIterator":private]=>
        !            79:   array(2) {
        !            80:     [2]=>
        !            81:     string(5) "alter"
        !            82:     [3]=>
        !            83:     array(1) {
        !            84:       [3]=>
        !            85:       string(4) "val3"
        !            86:     }
        !            87:   }
        !            88: }
        !            89: update 3
        !            90: object(RecursiveArrayIterator)#%d (1) {
        !            91:   ["storage":"ArrayIterator":private]=>
        !            92:   array(1) {
        !            93:     [3]=>
        !            94:     string(4) "val3"
        !            95:   }
        !            96: }
        !            97: object(RecursiveArrayIterator)#%d (1) {
        !            98:   ["storage":"ArrayIterator":private]=>
        !            99:   array(1) {
        !           100:     [3]=>
        !           101:     string(5) "alter"
        !           102:   }
        !           103: }
        !           104: update 4
        !           105: object(RecursiveArrayIterator)#%d (1) {
        !           106:   ["storage":"ArrayIterator":private]=>
        !           107:   array(3) {
        !           108:     [1]=>
        !           109:     string(5) "alter"
        !           110:     [2]=>
        !           111:     array(2) {
        !           112:       [2]=>
        !           113:       string(4) "val2"
        !           114:       [3]=>
        !           115:       array(1) {
        !           116:         [3]=>
        !           117:         string(4) "val3"
        !           118:       }
        !           119:     }
        !           120:     [4]=>
        !           121:     string(4) "val4"
        !           122:   }
        !           123: }
        !           124: object(RecursiveArrayIterator)#%d (1) {
        !           125:   ["storage":"ArrayIterator":private]=>
        !           126:   array(3) {
        !           127:     [1]=>
        !           128:     string(5) "alter"
        !           129:     [2]=>
        !           130:     array(2) {
        !           131:       [2]=>
        !           132:       string(4) "val2"
        !           133:       [3]=>
        !           134:       array(1) {
        !           135:         [3]=>
        !           136:         string(4) "val3"
        !           137:       }
        !           138:     }
        !           139:     [4]=>
        !           140:     string(5) "alter"
        !           141:   }
        !           142: }
        !           143: array(3) {
        !           144:   [1]=>
        !           145:   string(5) "alter"
        !           146:   [2]=>
        !           147:   array(2) {
        !           148:     [2]=>
        !           149:     string(4) "val2"
        !           150:     [3]=>
        !           151:     array(1) {
        !           152:       [3]=>
        !           153:       string(4) "val3"
        !           154:     }
        !           155:   }
        !           156:   [4]=>
        !           157:   string(5) "alter"
        !           158: }

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