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>