Annotation of embedaddon/php/ext/standard/tests/array/array_merge_variation4.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test array_merge() function : usage variations - Diff. data types as array keys
3: --FILE--
4: <?php
5: /* Prototype : array array_merge(array $arr1, array $arr2 [, array $...])
6: * Description: Merges elements from passed arrays into one array
7: * Source code: ext/standard/array.c
8: */
9:
10: /*
11: * Pass an array with different data types as keys to test how array_merge
12: * adds it onto an existing array
13: */
14:
15: echo "*** Testing array_merge() : usage variations ***\n";
16:
17: // Initialise function arguments not being substituted
18: $arr = array ('one' => 1, 'two' => 2);
19:
20: //get an unset variable
21: $unset_var = 10;
22: unset ($unset_var);
23:
24: // heredoc string
25: $heredoc = <<<EOT
26: hello world
27: EOT;
28:
29: // arrays with keys as different data types to be passed as $input
30: $inputs = array(
31:
32: // int data
33: /*1*/ 'int' => array(
34: 0 => 'zero',
35: 1 => 'one',
36: 12345 => 'positive',
37: -2345 => 'negative',
38: ),
39:
40: // float data
41: /*2*/ 'float' => array(
42: 10.5 => 'positive',
43: -10.5 => 'negative',
44: .5 => 'half',
45: ),
46:
47: /*3*/ 'extreme floats' => array(
48: 12.3456789000e10 => 'large',
49: 12.3456789000E-10 => 'small',
50: ),
51:
52: // null data
53: /*4*/ 'null uppercase' => array(
54: NULL => 'null 1',
55: ),
56:
57: /*5*/ 'null lowercase' => array(
58: null => 'null 2',
59: ),
60:
61: // boolean data
62: /*6*/ 'bool lowercase' => array(
63: true => 'lowert',
64: false => 'lowerf',
65: ),
66:
67: /*7*/ 'bool uppercase' => array(
68: TRUE => 'uppert',
69: FALSE => 'upperf',
70: ),
71:
72: // empty data
73: /*8*/ 'empty double quotes' => array(
74: "" => 'emptyd',
75: ),
76:
77: /*9*/ 'empty single quotes' => array(
78: '' => 'emptys',
79: ),
80:
81: // string data
82: /*10*/ 'string' => array(
83: "stringd" => 'stringd',
84: 'strings' => 'strings',
85: $heredoc => 'stringh',
86: ),
87:
88: // undefined data
89: /*11*/ 'undefined' => array(
90: @$undefined_var => 'undefined',
91: ),
92:
93: // unset data
94: /*12*/ 'unset' => array(
95: @$unset_var => 'unset',
96: ),
97: );
98:
99: // loop through each element of $inputs to check the behavior of array_merge
100: $iterator = 1;
101: foreach($inputs as $key => $input) {
102: echo "\n-- Iteration $iterator: $key data --\n";
103: var_dump( array_merge($input, $arr) );
104: var_dump( array_merge($arr, $input) );
105: $iterator++;
106: };
107:
108: echo "Done";
109: ?>
110: --EXPECTF--
111: *** Testing array_merge() : usage variations ***
112:
113: -- Iteration 1: int data --
114: array(6) {
115: [0]=>
116: string(4) "zero"
117: [1]=>
118: string(3) "one"
119: [2]=>
120: string(8) "positive"
121: [3]=>
122: string(8) "negative"
123: ["one"]=>
124: int(1)
125: ["two"]=>
126: int(2)
127: }
128: array(6) {
129: ["one"]=>
130: int(1)
131: ["two"]=>
132: int(2)
133: [0]=>
134: string(4) "zero"
135: [1]=>
136: string(3) "one"
137: [2]=>
138: string(8) "positive"
139: [3]=>
140: string(8) "negative"
141: }
142:
143: -- Iteration 2: float data --
144: array(5) {
145: [0]=>
146: string(8) "positive"
147: [1]=>
148: string(8) "negative"
149: [2]=>
150: string(4) "half"
151: ["one"]=>
152: int(1)
153: ["two"]=>
154: int(2)
155: }
156: array(5) {
157: ["one"]=>
158: int(1)
159: ["two"]=>
160: int(2)
161: [0]=>
162: string(8) "positive"
163: [1]=>
164: string(8) "negative"
165: [2]=>
166: string(4) "half"
167: }
168:
169: -- Iteration 3: extreme floats data --
170: array(4) {
171: [0]=>
172: string(5) "large"
173: [1]=>
174: string(5) "small"
175: ["one"]=>
176: int(1)
177: ["two"]=>
178: int(2)
179: }
180: array(4) {
181: ["one"]=>
182: int(1)
183: ["two"]=>
184: int(2)
185: [0]=>
186: string(5) "large"
187: [1]=>
188: string(5) "small"
189: }
190:
191: -- Iteration 4: null uppercase data --
192: array(3) {
193: [""]=>
194: string(6) "null 1"
195: ["one"]=>
196: int(1)
197: ["two"]=>
198: int(2)
199: }
200: array(3) {
201: ["one"]=>
202: int(1)
203: ["two"]=>
204: int(2)
205: [""]=>
206: string(6) "null 1"
207: }
208:
209: -- Iteration 5: null lowercase data --
210: array(3) {
211: [""]=>
212: string(6) "null 2"
213: ["one"]=>
214: int(1)
215: ["two"]=>
216: int(2)
217: }
218: array(3) {
219: ["one"]=>
220: int(1)
221: ["two"]=>
222: int(2)
223: [""]=>
224: string(6) "null 2"
225: }
226:
227: -- Iteration 6: bool lowercase data --
228: array(4) {
229: [0]=>
230: string(6) "lowert"
231: [1]=>
232: string(6) "lowerf"
233: ["one"]=>
234: int(1)
235: ["two"]=>
236: int(2)
237: }
238: array(4) {
239: ["one"]=>
240: int(1)
241: ["two"]=>
242: int(2)
243: [0]=>
244: string(6) "lowert"
245: [1]=>
246: string(6) "lowerf"
247: }
248:
249: -- Iteration 7: bool uppercase data --
250: array(4) {
251: [0]=>
252: string(6) "uppert"
253: [1]=>
254: string(6) "upperf"
255: ["one"]=>
256: int(1)
257: ["two"]=>
258: int(2)
259: }
260: array(4) {
261: ["one"]=>
262: int(1)
263: ["two"]=>
264: int(2)
265: [0]=>
266: string(6) "uppert"
267: [1]=>
268: string(6) "upperf"
269: }
270:
271: -- Iteration 8: empty double quotes data --
272: array(3) {
273: [""]=>
274: string(6) "emptyd"
275: ["one"]=>
276: int(1)
277: ["two"]=>
278: int(2)
279: }
280: array(3) {
281: ["one"]=>
282: int(1)
283: ["two"]=>
284: int(2)
285: [""]=>
286: string(6) "emptyd"
287: }
288:
289: -- Iteration 9: empty single quotes data --
290: array(3) {
291: [""]=>
292: string(6) "emptys"
293: ["one"]=>
294: int(1)
295: ["two"]=>
296: int(2)
297: }
298: array(3) {
299: ["one"]=>
300: int(1)
301: ["two"]=>
302: int(2)
303: [""]=>
304: string(6) "emptys"
305: }
306:
307: -- Iteration 10: string data --
308: array(5) {
309: ["stringd"]=>
310: string(7) "stringd"
311: ["strings"]=>
312: string(7) "strings"
313: ["hello world"]=>
314: string(7) "stringh"
315: ["one"]=>
316: int(1)
317: ["two"]=>
318: int(2)
319: }
320: array(5) {
321: ["one"]=>
322: int(1)
323: ["two"]=>
324: int(2)
325: ["stringd"]=>
326: string(7) "stringd"
327: ["strings"]=>
328: string(7) "strings"
329: ["hello world"]=>
330: string(7) "stringh"
331: }
332:
333: -- Iteration 11: undefined data --
334: array(3) {
335: [""]=>
336: string(9) "undefined"
337: ["one"]=>
338: int(1)
339: ["two"]=>
340: int(2)
341: }
342: array(3) {
343: ["one"]=>
344: int(1)
345: ["two"]=>
346: int(2)
347: [""]=>
348: string(9) "undefined"
349: }
350:
351: -- Iteration 12: unset data --
352: array(3) {
353: [""]=>
354: string(5) "unset"
355: ["one"]=>
356: int(1)
357: ["two"]=>
358: int(2)
359: }
360: array(3) {
361: ["one"]=>
362: int(1)
363: ["two"]=>
364: int(2)
365: [""]=>
366: string(5) "unset"
367: }
368: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>