Annotation of embedaddon/php/ext/standard/tests/array/rsort_variation2.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test rsort() function : usage variations - Pass different data types as $sort_flags arg
3: --FILE--
4: <?php
5: /* Prototype : bool rsort(array &$array_arg [, int $sort_flags])
6: * Description: Sort an array in reverse order
7: * Source code: ext/standard/array.c
8: */
9:
10: /*
11: * Pass different data types as $sort_flags argument to rsort() to test behaviour
12: * Where possible, 'SORT_NUMERIC' has been entered as a string value
13: */
14:
15: echo "*** Testing rsort() : variation ***\n";
16:
17: // Initialise function arguments not being substituted
18: $array_arg = array (1, 5, 2, 3, 1);
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 "SORT_NUMERIC";
29: }
30: }
31:
32: // heredoc string
33: $heredoc = <<<EOT
34: SORT_NUMERIC
35: EOT;
36:
37: // get a resource variable
38: $fp = fopen(__FILE__, "r");
39:
40: // unexpected values to be passed to $sort_flags argument
41: $inputs = array(
42:
43: // int data
44: /*1*/ 0,
45: 1,
46: 12345,
47: -2345,
48:
49: // float data
50: /*5*/ 10.5,
51: -10.5,
52: 12.3456789000e10,
53: 12.3456789000E-10,
54: .5,
55:
56: // null data
57: /*10*/ NULL,
58: null,
59:
60: // boolean data
61: /*12*/ true,
62: false,
63: TRUE,
64: FALSE,
65:
66: // empty data
67: /*16*/ "",
68: '',
69:
70: // string data
71: /*18*/ "SORT_NUMERIC",
72: 'SORT_NUMERIC',
73: $heredoc,
74:
75: // object data
76: /*21*/ new classA(),
77:
78: // undefined data
79: /*22*/ @$undefined_var,
80:
81: // unset data
82: /*23*/ @$unset_var,
83:
84: // resource variable
85: /*24*/ $fp
86: );
87:
88: // loop through each element of $inputs to check the behavior of rsort()
89: $iterator = 1;
90: foreach($inputs as $input) {
91: echo "\n-- Iteration $iterator --\n";
92:
93: //create temporary array in case rsort() works
94: $temp = $array_arg;
95:
96: var_dump( rsort($temp, $input) );
97: var_dump($temp);
98: $iterator++;
99:
100: $temp = null;
101: };
102:
103: fclose($fp);
104:
105: echo "Done";
106: ?>
107:
108: --EXPECTF--
109: *** Testing rsort() : variation ***
110:
111: -- Iteration 1 --
112: bool(true)
113: array(5) {
114: [0]=>
115: int(5)
116: [1]=>
117: int(3)
118: [2]=>
119: int(2)
120: [3]=>
121: int(1)
122: [4]=>
123: int(1)
124: }
125:
126: -- Iteration 2 --
127: bool(true)
128: array(5) {
129: [0]=>
130: int(5)
131: [1]=>
132: int(3)
133: [2]=>
134: int(2)
135: [3]=>
136: int(1)
137: [4]=>
138: int(1)
139: }
140:
141: -- Iteration 3 --
142: bool(true)
143: array(5) {
144: [0]=>
145: int(5)
146: [1]=>
147: int(3)
148: [2]=>
149: int(2)
150: [3]=>
151: int(1)
152: [4]=>
153: int(1)
154: }
155:
156: -- Iteration 4 --
157: bool(true)
158: array(5) {
159: [0]=>
160: int(5)
161: [1]=>
162: int(3)
163: [2]=>
164: int(2)
165: [3]=>
166: int(1)
167: [4]=>
168: int(1)
169: }
170:
171: -- Iteration 5 --
172: bool(true)
173: array(5) {
174: [0]=>
175: int(5)
176: [1]=>
177: int(3)
178: [2]=>
179: int(2)
180: [3]=>
181: int(1)
182: [4]=>
183: int(1)
184: }
185:
186: -- Iteration 6 --
187: bool(true)
188: array(5) {
189: [0]=>
190: int(5)
191: [1]=>
192: int(3)
193: [2]=>
194: int(2)
195: [3]=>
196: int(1)
197: [4]=>
198: int(1)
199: }
200:
201: -- Iteration 7 --
202: bool(true)
203: array(5) {
204: [0]=>
205: int(5)
206: [1]=>
207: int(3)
208: [2]=>
209: int(2)
210: [3]=>
211: int(1)
212: [4]=>
213: int(1)
214: }
215:
216: -- Iteration 8 --
217: bool(true)
218: array(5) {
219: [0]=>
220: int(5)
221: [1]=>
222: int(3)
223: [2]=>
224: int(2)
225: [3]=>
226: int(1)
227: [4]=>
228: int(1)
229: }
230:
231: -- Iteration 9 --
232: bool(true)
233: array(5) {
234: [0]=>
235: int(5)
236: [1]=>
237: int(3)
238: [2]=>
239: int(2)
240: [3]=>
241: int(1)
242: [4]=>
243: int(1)
244: }
245:
246: -- Iteration 10 --
247: bool(true)
248: array(5) {
249: [0]=>
250: int(5)
251: [1]=>
252: int(3)
253: [2]=>
254: int(2)
255: [3]=>
256: int(1)
257: [4]=>
258: int(1)
259: }
260:
261: -- Iteration 11 --
262: bool(true)
263: array(5) {
264: [0]=>
265: int(5)
266: [1]=>
267: int(3)
268: [2]=>
269: int(2)
270: [3]=>
271: int(1)
272: [4]=>
273: int(1)
274: }
275:
276: -- Iteration 12 --
277: bool(true)
278: array(5) {
279: [0]=>
280: int(5)
281: [1]=>
282: int(3)
283: [2]=>
284: int(2)
285: [3]=>
286: int(1)
287: [4]=>
288: int(1)
289: }
290:
291: -- Iteration 13 --
292: bool(true)
293: array(5) {
294: [0]=>
295: int(5)
296: [1]=>
297: int(3)
298: [2]=>
299: int(2)
300: [3]=>
301: int(1)
302: [4]=>
303: int(1)
304: }
305:
306: -- Iteration 14 --
307: bool(true)
308: array(5) {
309: [0]=>
310: int(5)
311: [1]=>
312: int(3)
313: [2]=>
314: int(2)
315: [3]=>
316: int(1)
317: [4]=>
318: int(1)
319: }
320:
321: -- Iteration 15 --
322: bool(true)
323: array(5) {
324: [0]=>
325: int(5)
326: [1]=>
327: int(3)
328: [2]=>
329: int(2)
330: [3]=>
331: int(1)
332: [4]=>
333: int(1)
334: }
335:
336: -- Iteration 16 --
337:
338: Warning: rsort() expects parameter 2 to be long, string given in %s on line %d
339: bool(false)
340: array(5) {
341: [0]=>
342: int(1)
343: [1]=>
344: int(5)
345: [2]=>
346: int(2)
347: [3]=>
348: int(3)
349: [4]=>
350: int(1)
351: }
352:
353: -- Iteration 17 --
354:
355: Warning: rsort() expects parameter 2 to be long, string given in %s on line %d
356: bool(false)
357: array(5) {
358: [0]=>
359: int(1)
360: [1]=>
361: int(5)
362: [2]=>
363: int(2)
364: [3]=>
365: int(3)
366: [4]=>
367: int(1)
368: }
369:
370: -- Iteration 18 --
371:
372: Warning: rsort() expects parameter 2 to be long, string given in %s on line %d
373: bool(false)
374: array(5) {
375: [0]=>
376: int(1)
377: [1]=>
378: int(5)
379: [2]=>
380: int(2)
381: [3]=>
382: int(3)
383: [4]=>
384: int(1)
385: }
386:
387: -- Iteration 19 --
388:
389: Warning: rsort() expects parameter 2 to be long, string given in %s on line %d
390: bool(false)
391: array(5) {
392: [0]=>
393: int(1)
394: [1]=>
395: int(5)
396: [2]=>
397: int(2)
398: [3]=>
399: int(3)
400: [4]=>
401: int(1)
402: }
403:
404: -- Iteration 20 --
405:
406: Warning: rsort() expects parameter 2 to be long, string given in %s on line %d
407: bool(false)
408: array(5) {
409: [0]=>
410: int(1)
411: [1]=>
412: int(5)
413: [2]=>
414: int(2)
415: [3]=>
416: int(3)
417: [4]=>
418: int(1)
419: }
420:
421: -- Iteration 21 --
422:
423: Warning: rsort() expects parameter 2 to be long, object given in %s on line %d
424: bool(false)
425: array(5) {
426: [0]=>
427: int(1)
428: [1]=>
429: int(5)
430: [2]=>
431: int(2)
432: [3]=>
433: int(3)
434: [4]=>
435: int(1)
436: }
437:
438: -- Iteration 22 --
439: bool(true)
440: array(5) {
441: [0]=>
442: int(5)
443: [1]=>
444: int(3)
445: [2]=>
446: int(2)
447: [3]=>
448: int(1)
449: [4]=>
450: int(1)
451: }
452:
453: -- Iteration 23 --
454: bool(true)
455: array(5) {
456: [0]=>
457: int(5)
458: [1]=>
459: int(3)
460: [2]=>
461: int(2)
462: [3]=>
463: int(1)
464: [4]=>
465: int(1)
466: }
467:
468: -- Iteration 24 --
469:
470: Warning: rsort() expects parameter 2 to be long, resource given in %s on line %d
471: bool(false)
472: array(5) {
473: [0]=>
474: int(1)
475: [1]=>
476: int(5)
477: [2]=>
478: int(2)
479: [3]=>
480: int(3)
481: [4]=>
482: int(1)
483: }
484: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>