Return to array_map_variation2.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / array |
1.1 misho 1: --TEST-- 2: Test array_map() function : usage variations - references 3: --FILE-- 4: <?php 5: 6: /* Prototype : array array_map(mixed callback, array input1 [, array input2 ,...]) 7: * Description: Applies the callback to the elements in given arrays. 8: * Source code: ext/standard/array.c 9: */ 10: 11: echo "*** Testing array_map() : references ***\n"; 12: $arr = array("k1" => "v1","k2"=>"v2"); 13: $arr[]=&$arr["k1"]; 14: $arr[]=&$arr; 15: function cb1 ($a) {var_dump ($a);return array ($a);}; 16: function cb2 (&$a) {var_dump ($a);return array (&$a);}; 17: var_dump( array_map("cb1", $arr)); 18: var_dump( array_map("cb2", $arr,$arr)); 19: var_dump( array_map(null, $arr)); 20: var_dump( array_map(null, $arr, $arr)); 21: 22: // break cycles 23: $arr[0] = null; 24: $arr[1] = null; 25: 26: echo "Done"; 27: ?> 28: 29: --EXPECT-- 30: *** Testing array_map() : references *** 31: string(2) "v1" 32: string(2) "v2" 33: string(2) "v1" 34: array(4) { 35: ["k1"]=> 36: &string(2) "v1" 37: ["k2"]=> 38: string(2) "v2" 39: [0]=> 40: &string(2) "v1" 41: [1]=> 42: &array(4) { 43: ["k1"]=> 44: &string(2) "v1" 45: ["k2"]=> 46: string(2) "v2" 47: [0]=> 48: &string(2) "v1" 49: [1]=> 50: *RECURSION* 51: } 52: } 53: array(4) { 54: ["k1"]=> 55: array(1) { 56: [0]=> 57: string(2) "v1" 58: } 59: ["k2"]=> 60: array(1) { 61: [0]=> 62: string(2) "v2" 63: } 64: [0]=> 65: array(1) { 66: [0]=> 67: string(2) "v1" 68: } 69: [1]=> 70: array(1) { 71: [0]=> 72: array(4) { 73: ["k1"]=> 74: &string(2) "v1" 75: ["k2"]=> 76: string(2) "v2" 77: [0]=> 78: &string(2) "v1" 79: [1]=> 80: &array(4) { 81: ["k1"]=> 82: &string(2) "v1" 83: ["k2"]=> 84: string(2) "v2" 85: [0]=> 86: &string(2) "v1" 87: [1]=> 88: *RECURSION* 89: } 90: } 91: } 92: } 93: string(2) "v1" 94: string(2) "v2" 95: string(2) "v1" 96: array(4) { 97: ["k1"]=> 98: &string(2) "v1" 99: ["k2"]=> 100: string(2) "v2" 101: [0]=> 102: &string(2) "v1" 103: [1]=> 104: &array(4) { 105: ["k1"]=> 106: &string(2) "v1" 107: ["k2"]=> 108: string(2) "v2" 109: [0]=> 110: &string(2) "v1" 111: [1]=> 112: *RECURSION* 113: } 114: } 115: array(4) { 116: [0]=> 117: array(1) { 118: [0]=> 119: &string(2) "v1" 120: } 121: [1]=> 122: array(1) { 123: [0]=> 124: string(2) "v2" 125: } 126: [2]=> 127: array(1) { 128: [0]=> 129: &string(2) "v1" 130: } 131: [3]=> 132: array(1) { 133: [0]=> 134: &array(4) { 135: ["k1"]=> 136: &string(2) "v1" 137: ["k2"]=> 138: string(2) "v2" 139: [0]=> 140: &string(2) "v1" 141: [1]=> 142: *RECURSION* 143: } 144: } 145: } 146: array(4) { 147: ["k1"]=> 148: &string(2) "v1" 149: ["k2"]=> 150: string(2) "v2" 151: [0]=> 152: &string(2) "v1" 153: [1]=> 154: &array(4) { 155: ["k1"]=> 156: &string(2) "v1" 157: ["k2"]=> 158: string(2) "v2" 159: [0]=> 160: &string(2) "v1" 161: [1]=> 162: *RECURSION* 163: } 164: } 165: array(4) { 166: [0]=> 167: array(2) { 168: [0]=> 169: &string(2) "v1" 170: [1]=> 171: &string(2) "v1" 172: } 173: [1]=> 174: array(2) { 175: [0]=> 176: string(2) "v2" 177: [1]=> 178: string(2) "v2" 179: } 180: [2]=> 181: array(2) { 182: [0]=> 183: &string(2) "v1" 184: [1]=> 185: &string(2) "v1" 186: } 187: [3]=> 188: array(2) { 189: [0]=> 190: &array(4) { 191: ["k1"]=> 192: &string(2) "v1" 193: ["k2"]=> 194: string(2) "v2" 195: [0]=> 196: &string(2) "v1" 197: [1]=> 198: *RECURSION* 199: } 200: [1]=> 201: &array(4) { 202: ["k1"]=> 203: &string(2) "v1" 204: ["k2"]=> 205: string(2) "v2" 206: [0]=> 207: &string(2) "v1" 208: [1]=> 209: *RECURSION* 210: } 211: } 212: } 213: Done