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