Annotation of embedaddon/php/ext/standard/tests/array/array_merge_recursive_variation5.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test array_merge_recursive() function : usage variations - associative array with different values
3: --FILE--
4: <?php
5: /* Prototype : array array_merge_recursive(array $arr1[, array $...])
6: * Description: Recursively merges elements from passed arrays into one array
7: * Source code: ext/standard/array.c
8: */
9:
10: /*
11: * Testing the functionality of array_merge_recursive() by passing different
12: * associative arrays having different values to $arr1 argument.
13: */
14:
15: echo "*** Testing array_merge_recursive() : assoc. array with diff. values to \$arr1 argument ***\n";
16:
17: // get an unset variable
18: $unset_var = 10;
19: unset ($unset_var);
20:
21: // get a resource variable
22: $fp = fopen(__FILE__, "r");
23:
24: // get a class
25: class classA
26: {
27: public function __toString(){
28: return "Class A object";
29: }
30: }
31:
32: // get a heredoc string
33: $heredoc = <<<EOT
34: Hello world
35: EOT;
36:
37: // different associative arrays to be passed to $arr1 argument
38: $arrays = array (
39: // arrays with integer values
40: /*1*/ array('0' => 0, '1' => 0),
41: array("one" => 1, 'two' => 2, "three" => 1, 4 => 1),
42:
43: // arrays with float values
44: /*3*/ array("f1" => 2.3333, "f2" => 2.3333, "f3" => array(1.1, 2.22)),
45: array("f1" => 1.2, 'f2' => 3.33, 3 => 4.89999922839999, 'f4' => array(1.2, 'f4' => 1.2)),
46:
47: // arrays with string values
48: /*5*/ array(111 => "\tHello", "array" => "col\tor", 2 => "\v\fworld", 3.3 => "\tHello"),
49: array(111 => '\tHello', 'array' => 'col\tor', 2 => '\v\fworld', 3.3 => '\tHello'),
50: array(1 => "hello", "string" => $heredoc, $heredoc),
51:
52: // array with object, unset variable and resource variable
53: /*8*/ array(11 => new classA(), "string" => @$unset_var, "resource" => $fp, new classA(), $fp),
54: );
55:
56: // initialise the second array
57: $arr2 = array( 1 => "one", 2, "string" => "hello", "array" => array("a", "b", "c"));
58:
59: // loop through each sub array of $arrays and check the behavior of array_merge_recursive()
60: $iterator = 1;
61: foreach($arrays as $arr1) {
62: echo "-- Iteration $iterator --\n";
63:
64: // with default argument
65: echo "-- With default argument --\n";
66: var_dump( array_merge_recursive($arr1) );
67:
68: // with more arguments
69: echo "-- With more arguments --\n";
70: var_dump( array_merge_recursive($arr1, $arr2) );
71:
72: $iterator++;
73: }
74:
75: // close the file resource used
76: fclose($fp);
77:
78: echo "Done";
79: ?>
80: --EXPECTF--
81: *** Testing array_merge_recursive() : assoc. array with diff. values to $arr1 argument ***
82: -- Iteration 1 --
83: -- With default argument --
84: array(2) {
85: [0]=>
86: int(0)
87: [1]=>
88: int(0)
89: }
90: -- With more arguments --
91: array(6) {
92: [0]=>
93: int(0)
94: [1]=>
95: int(0)
96: [2]=>
97: string(3) "one"
98: [3]=>
99: int(2)
100: ["string"]=>
101: string(5) "hello"
102: ["array"]=>
103: array(3) {
104: [0]=>
105: string(1) "a"
106: [1]=>
107: string(1) "b"
108: [2]=>
109: string(1) "c"
110: }
111: }
112: -- Iteration 2 --
113: -- With default argument --
114: array(4) {
115: ["one"]=>
116: int(1)
117: ["two"]=>
118: int(2)
119: ["three"]=>
120: int(1)
121: [0]=>
122: int(1)
123: }
124: -- With more arguments --
125: array(8) {
126: ["one"]=>
127: int(1)
128: ["two"]=>
129: int(2)
130: ["three"]=>
131: int(1)
132: [0]=>
133: int(1)
134: [1]=>
135: string(3) "one"
136: [2]=>
137: int(2)
138: ["string"]=>
139: string(5) "hello"
140: ["array"]=>
141: array(3) {
142: [0]=>
143: string(1) "a"
144: [1]=>
145: string(1) "b"
146: [2]=>
147: string(1) "c"
148: }
149: }
150: -- Iteration 3 --
151: -- With default argument --
152: array(3) {
153: ["f1"]=>
154: float(2.3333)
155: ["f2"]=>
156: float(2.3333)
157: ["f3"]=>
158: array(2) {
159: [0]=>
160: float(1.1)
161: [1]=>
162: float(2.22)
163: }
164: }
165: -- With more arguments --
166: array(7) {
167: ["f1"]=>
168: float(2.3333)
169: ["f2"]=>
170: float(2.3333)
171: ["f3"]=>
172: array(2) {
173: [0]=>
174: float(1.1)
175: [1]=>
176: float(2.22)
177: }
178: [0]=>
179: string(3) "one"
180: [1]=>
181: int(2)
182: ["string"]=>
183: string(5) "hello"
184: ["array"]=>
185: array(3) {
186: [0]=>
187: string(1) "a"
188: [1]=>
189: string(1) "b"
190: [2]=>
191: string(1) "c"
192: }
193: }
194: -- Iteration 4 --
195: -- With default argument --
196: array(4) {
197: ["f1"]=>
198: float(1.2)
199: ["f2"]=>
200: float(3.33)
201: [0]=>
202: float(4.8999992284)
203: ["f4"]=>
204: array(2) {
205: [0]=>
206: float(1.2)
207: ["f4"]=>
208: float(1.2)
209: }
210: }
211: -- With more arguments --
212: array(8) {
213: ["f1"]=>
214: float(1.2)
215: ["f2"]=>
216: float(3.33)
217: [0]=>
218: float(4.8999992284)
219: ["f4"]=>
220: array(2) {
221: [0]=>
222: float(1.2)
223: ["f4"]=>
224: float(1.2)
225: }
226: [1]=>
227: string(3) "one"
228: [2]=>
229: int(2)
230: ["string"]=>
231: string(5) "hello"
232: ["array"]=>
233: array(3) {
234: [0]=>
235: string(1) "a"
236: [1]=>
237: string(1) "b"
238: [2]=>
239: string(1) "c"
240: }
241: }
242: -- Iteration 5 --
243: -- With default argument --
244: array(4) {
245: [0]=>
246: string(6) " Hello"
247: ["array"]=>
248: string(6) "col or"
249: [1]=>
250: string(7) "world"
251: [2]=>
252: string(6) " Hello"
253: }
254: -- With more arguments --
255: array(7) {
256: [0]=>
257: string(6) " Hello"
258: ["array"]=>
259: array(4) {
260: [0]=>
261: string(6) "col or"
262: [1]=>
263: string(1) "a"
264: [2]=>
265: string(1) "b"
266: [3]=>
267: string(1) "c"
268: }
269: [1]=>
270: string(7) "world"
271: [2]=>
272: string(6) " Hello"
273: [3]=>
274: string(3) "one"
275: [4]=>
276: int(2)
277: ["string"]=>
278: string(5) "hello"
279: }
280: -- Iteration 6 --
281: -- With default argument --
282: array(4) {
283: [0]=>
284: string(7) "\tHello"
285: ["array"]=>
286: string(7) "col\tor"
287: [1]=>
288: string(9) "\v\fworld"
289: [2]=>
290: string(7) "\tHello"
291: }
292: -- With more arguments --
293: array(7) {
294: [0]=>
295: string(7) "\tHello"
296: ["array"]=>
297: array(4) {
298: [0]=>
299: string(7) "col\tor"
300: [1]=>
301: string(1) "a"
302: [2]=>
303: string(1) "b"
304: [3]=>
305: string(1) "c"
306: }
307: [1]=>
308: string(9) "\v\fworld"
309: [2]=>
310: string(7) "\tHello"
311: [3]=>
312: string(3) "one"
313: [4]=>
314: int(2)
315: ["string"]=>
316: string(5) "hello"
317: }
318: -- Iteration 7 --
319: -- With default argument --
320: array(3) {
321: [0]=>
322: string(5) "hello"
323: ["string"]=>
324: string(11) "Hello world"
325: [1]=>
326: string(11) "Hello world"
327: }
328: -- With more arguments --
329: array(6) {
330: [0]=>
331: string(5) "hello"
332: ["string"]=>
333: array(2) {
334: [0]=>
335: string(11) "Hello world"
336: [1]=>
337: string(5) "hello"
338: }
339: [1]=>
340: string(11) "Hello world"
341: [2]=>
342: string(3) "one"
343: [3]=>
344: int(2)
345: ["array"]=>
346: array(3) {
347: [0]=>
348: string(1) "a"
349: [1]=>
350: string(1) "b"
351: [2]=>
352: string(1) "c"
353: }
354: }
355: -- Iteration 8 --
356: -- With default argument --
357: array(5) {
358: [0]=>
359: object(classA)#%d (0) {
360: }
361: ["string"]=>
362: NULL
363: ["resource"]=>
364: resource(%d) of type (stream)
365: [1]=>
366: object(classA)#%d (0) {
367: }
368: [2]=>
369: resource(%d) of type (stream)
370: }
371: -- With more arguments --
372: array(8) {
373: [0]=>
374: object(classA)#%d (0) {
375: }
376: ["string"]=>
377: array(2) {
378: [0]=>
379: NULL
380: [1]=>
381: string(5) "hello"
382: }
383: ["resource"]=>
384: resource(%d) of type (stream)
385: [1]=>
386: object(classA)#%d (0) {
387: }
388: [2]=>
389: resource(%d) of type (stream)
390: [3]=>
391: string(3) "one"
392: [4]=>
393: int(2)
394: ["array"]=>
395: array(3) {
396: [0]=>
397: string(1) "a"
398: [1]=>
399: string(1) "b"
400: [2]=>
401: string(1) "c"
402: }
403: }
404: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>