1--TEST--
2Test uasort() function : usage variations - unexpected values for 'array_arg' argument
3--FILE--
4<?php
5/* Prototype  : bool uasort(array $array_arg, string $cmp_function)
6 * Description: Sort an array with a user-defined comparison function and maintain index association
7 * Source code: ext/standard/array.c
8*/
9
10/*
11* Testing uasort() function by passing different scalar/nonscalar values as 'array_arg' argument
12*/
13
14echo "*** Testing uasort() : unexpected values for 'array_arg' ***\n";
15
16// Comparison function
17/* Prototype : int cmp_function(mixed $value1, mixed $value2)
18 * Parameters : $value1 and $value2 - values to be compared
19 * Return value : 0 - if both values are same
20 *                1 - if value1 is greater than value2
21 *               -1 - if value1 is less than value2
22 * Description : compares value1 and value2
23 */
24function cmp_function($value1, $value2)
25{
26  if($value1 == $value2) {
27    return 0;
28  }
29  else if($value1 > $value2) {
30    return 1;
31  }
32  else {
33    return -1;
34  }
35}
36
37//get an unset variable
38$unset_var = 10;
39unset ($unset_var);
40
41// get resource variable
42$fp = fopen(__FILE__,'r');
43
44//array of values to iterate over
45$input_values = array(
46
47       // int data
48/*1*/  0,
49       1,
50       12345,
51       -2345,
52
53       // float data
54/*5*/  10.5,
55       -10.5,
56       10.1234567e8,
57       10.7654321E-8,
58       .5,
59
60       // null data
61/*10*/ NULL,
62       null,
63
64       // boolean data
65/*12*/ true,
66       false,
67       TRUE,
68       FALSE,
69
70       // empty data
71/*16*/ "",
72       '',
73
74       // string data
75/*18*/ "string",
76       'string',
77
78       // resource data
79/*20*/ $fp,
80
81       // undefined data
82       @$undefined_var,
83
84       // unset data
85/*22*/ @$unset_var,
86);
87
88// loop through each value of input_values
89for($count = 0; $count < count($input_values); $count++) {
90  echo "-- Iteration ".($count + 1)." --\n";
91  var_dump( uasort($input_values[$count], 'cmp_function') );
92};
93
94//closing resource
95fclose($fp);
96echo "Done"
97?>
98--EXPECTF--
99*** Testing uasort() : unexpected values for 'array_arg' ***
100-- Iteration 1 --
101
102Warning: uasort() expects parameter 1 to be array, integer given in %s on line %d
103NULL
104-- Iteration 2 --
105
106Warning: uasort() expects parameter 1 to be array, integer given in %s on line %d
107NULL
108-- Iteration 3 --
109
110Warning: uasort() expects parameter 1 to be array, integer given in %s on line %d
111NULL
112-- Iteration 4 --
113
114Warning: uasort() expects parameter 1 to be array, integer given in %s on line %d
115NULL
116-- Iteration 5 --
117
118Warning: uasort() expects parameter 1 to be array, double given in %s on line %d
119NULL
120-- Iteration 6 --
121
122Warning: uasort() expects parameter 1 to be array, double given in %s on line %d
123NULL
124-- Iteration 7 --
125
126Warning: uasort() expects parameter 1 to be array, double given in %s on line %d
127NULL
128-- Iteration 8 --
129
130Warning: uasort() expects parameter 1 to be array, double given in %s on line %d
131NULL
132-- Iteration 9 --
133
134Warning: uasort() expects parameter 1 to be array, double given in %s on line %d
135NULL
136-- Iteration 10 --
137
138Warning: uasort() expects parameter 1 to be array, null given in %s on line %d
139NULL
140-- Iteration 11 --
141
142Warning: uasort() expects parameter 1 to be array, null given in %s on line %d
143NULL
144-- Iteration 12 --
145
146Warning: uasort() expects parameter 1 to be array, boolean given in %s on line %d
147NULL
148-- Iteration 13 --
149
150Warning: uasort() expects parameter 1 to be array, boolean given in %s on line %d
151NULL
152-- Iteration 14 --
153
154Warning: uasort() expects parameter 1 to be array, boolean given in %s on line %d
155NULL
156-- Iteration 15 --
157
158Warning: uasort() expects parameter 1 to be array, boolean given in %s on line %d
159NULL
160-- Iteration 16 --
161
162Warning: uasort() expects parameter 1 to be array, string given in %s on line %d
163NULL
164-- Iteration 17 --
165
166Warning: uasort() expects parameter 1 to be array, string given in %s on line %d
167NULL
168-- Iteration 18 --
169
170Warning: uasort() expects parameter 1 to be array, string given in %s on line %d
171NULL
172-- Iteration 19 --
173
174Warning: uasort() expects parameter 1 to be array, string given in %s on line %d
175NULL
176-- Iteration 20 --
177
178Warning: uasort() expects parameter 1 to be array, resource given in %s on line %d
179NULL
180-- Iteration 21 --
181
182Warning: uasort() expects parameter 1 to be array, null given in %s on line %d
183NULL
184-- Iteration 22 --
185
186Warning: uasort() expects parameter 1 to be array, null given in %s on line %d
187NULL
188Done
189