Annotation of embedaddon/php/ext/standard/tests/array/array_map_variation2.phpt, revision 1.1.1.1
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
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>