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