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