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