1--TEST--
2Test sort() function : error conditions
3--FILE--
4<?php
5/* Prototype  : bool sort(array &array_arg [, int sort_flags])
6 * Description: Sort an array
7 * Source code: ext/standard/array.c
8*/
9
10/*
11* Testing sort() function with all possible error conditions
12*/
13
14echo "*** Testing sort() : error conditions ***\n";
15
16// zero arguments
17echo "\n-- Testing sort() function with Zero arguments --\n";
18var_dump( sort() );
19
20//Test sort with more than the expected number of arguments
21echo "\n-- Testing sort() function with more than expected no. of arguments --\n";
22$array_arg = array(1, 2);
23$flag_value = array("SORT_REGULAR" => SORT_REGULAR, "SORT_STRING" => SORT_STRING, "SORT_NUMERIC" => SORT_NUMERIC);
24$extra_arg = 10;
25
26// loop through $flag_value array and setting all possible flag values
27foreach($flag_value as $key => $flag){
28  echo "\nSort flag = $key\n";
29  var_dump( sort($array_arg,$flag, $extra_arg) );
30
31  // dump the input array to ensure that it wasn't changed
32  var_dump($array_arg);
33}
34
35echo "Done";
36?>
37--EXPECTF--
38*** Testing sort() : error conditions ***
39
40-- Testing sort() function with Zero arguments --
41
42Warning: sort() expects at least 1 parameter, 0 given in %s on line %d
43bool(false)
44
45-- Testing sort() function with more than expected no. of arguments --
46
47Sort flag = SORT_REGULAR
48
49Warning: sort() expects at most 2 parameters, 3 given in %s on line %d
50bool(false)
51array(2) {
52  [0]=>
53  int(1)
54  [1]=>
55  int(2)
56}
57
58Sort flag = SORT_STRING
59
60Warning: sort() expects at most 2 parameters, 3 given in %s on line %d
61bool(false)
62array(2) {
63  [0]=>
64  int(1)
65  [1]=>
66  int(2)
67}
68
69Sort flag = SORT_NUMERIC
70
71Warning: sort() expects at most 2 parameters, 3 given in %s on line %d
72bool(false)
73array(2) {
74  [0]=>
75  int(1)
76  [1]=>
77  int(2)
78}
79Done
80