1--TEST-- 2Test sort() function : usage variations - unexpected values for 'sort_flags' argument 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() by providing different unexpected values for flag argument 12*/ 13 14echo "*** Testing sort() : usage variations ***\n"; 15 16//get an unset variable 17$unset_var = 10; 18unset ($unset_var); 19 20// resource variable 21$fp = fopen(__FILE__, "r"); 22 23// temperory array for checking unexpected behavior 24$unsorted_values = array(10, 2, 45); 25 26//array of values to iterate over 27$unexpected_values = array( 28 29 // int data 30/*1*/ -2345, 31 32 // float data 33/*2*/ 10.5, 34 -10.5, 35 10.5e2, 36 10.6E-2, 37 .5, 38 39 // null data 40/*7*/ NULL, 41 null, 42 43 // boolean data 44/*9*/ true, 45 false, 46 TRUE, 47 FALSE, 48 49 // empty data 50/*13*/ "", 51 '', 52 53 // string data 54/*15*/ "string", 55 'string', 56 57 // object data 58/*16*/ new stdclass(), 59 60 // undefined data 61/*17*/ @$undefined_var, 62 63 // unset data 64/*18*/ @$unset_var, 65 66 // resource variable 67/*19*/ $fp 68 69); 70 71// loop though each element of the array and check the working of sort() 72// when $flag argument is supplied with different values 73echo "\n-- Testing sort() by supplying different unexpected values for 'flag' argument --\n"; 74 75$counter = 1; 76for($index = 0; $index < count($unexpected_values); $index ++) { 77 echo "-- Iteration $counter --\n"; 78 79 // sort the array, retain a temp. copy of input array for next iteration 80 $value = $unexpected_values [$index]; 81 $temp_array = $unsorted_values; 82 var_dump( sort($temp_array, $value) ); 83 84 //dump the sorted array 85 var_dump($temp_array); 86 $counter++; 87} 88 89echo "Done"; 90?> 91--EXPECTF-- 92*** Testing sort() : usage variations *** 93 94-- Testing sort() by supplying different unexpected values for 'flag' argument -- 95-- Iteration 1 -- 96bool(true) 97array(3) { 98 [0]=> 99 int(2) 100 [1]=> 101 int(10) 102 [2]=> 103 int(45) 104} 105-- Iteration 2 -- 106bool(true) 107array(3) { 108 [0]=> 109 int(10) 110 [1]=> 111 int(2) 112 [2]=> 113 int(45) 114} 115-- Iteration 3 -- 116bool(true) 117array(3) { 118 [0]=> 119 int(2) 120 [1]=> 121 int(10) 122 [2]=> 123 int(45) 124} 125-- Iteration 4 -- 126bool(true) 127array(3) { 128 [0]=> 129 int(2) 130 [1]=> 131 int(10) 132 [2]=> 133 int(45) 134} 135-- Iteration 5 -- 136bool(true) 137array(3) { 138 [0]=> 139 int(2) 140 [1]=> 141 int(10) 142 [2]=> 143 int(45) 144} 145-- Iteration 6 -- 146bool(true) 147array(3) { 148 [0]=> 149 int(2) 150 [1]=> 151 int(10) 152 [2]=> 153 int(45) 154} 155-- Iteration 7 -- 156bool(true) 157array(3) { 158 [0]=> 159 int(2) 160 [1]=> 161 int(10) 162 [2]=> 163 int(45) 164} 165-- Iteration 8 -- 166bool(true) 167array(3) { 168 [0]=> 169 int(2) 170 [1]=> 171 int(10) 172 [2]=> 173 int(45) 174} 175-- Iteration 9 -- 176bool(true) 177array(3) { 178 [0]=> 179 int(2) 180 [1]=> 181 int(10) 182 [2]=> 183 int(45) 184} 185-- Iteration 10 -- 186bool(true) 187array(3) { 188 [0]=> 189 int(2) 190 [1]=> 191 int(10) 192 [2]=> 193 int(45) 194} 195-- Iteration 11 -- 196bool(true) 197array(3) { 198 [0]=> 199 int(2) 200 [1]=> 201 int(10) 202 [2]=> 203 int(45) 204} 205-- Iteration 12 -- 206bool(true) 207array(3) { 208 [0]=> 209 int(2) 210 [1]=> 211 int(10) 212 [2]=> 213 int(45) 214} 215-- Iteration 13 -- 216 217Warning: sort() expects parameter 2 to be int, string given in %s on line %d 218bool(false) 219array(3) { 220 [0]=> 221 int(10) 222 [1]=> 223 int(2) 224 [2]=> 225 int(45) 226} 227-- Iteration 14 -- 228 229Warning: sort() expects parameter 2 to be int, string given in %s on line %d 230bool(false) 231array(3) { 232 [0]=> 233 int(10) 234 [1]=> 235 int(2) 236 [2]=> 237 int(45) 238} 239-- Iteration 15 -- 240 241Warning: sort() expects parameter 2 to be int, string given in %s on line %d 242bool(false) 243array(3) { 244 [0]=> 245 int(10) 246 [1]=> 247 int(2) 248 [2]=> 249 int(45) 250} 251-- Iteration 16 -- 252 253Warning: sort() expects parameter 2 to be int, string given in %s on line %d 254bool(false) 255array(3) { 256 [0]=> 257 int(10) 258 [1]=> 259 int(2) 260 [2]=> 261 int(45) 262} 263-- Iteration 17 -- 264 265Warning: sort() expects parameter 2 to be int, object given in %s on line %d 266bool(false) 267array(3) { 268 [0]=> 269 int(10) 270 [1]=> 271 int(2) 272 [2]=> 273 int(45) 274} 275-- Iteration 18 -- 276bool(true) 277array(3) { 278 [0]=> 279 int(2) 280 [1]=> 281 int(10) 282 [2]=> 283 int(45) 284} 285-- Iteration 19 -- 286bool(true) 287array(3) { 288 [0]=> 289 int(2) 290 [1]=> 291 int(10) 292 [2]=> 293 int(45) 294} 295-- Iteration 20 -- 296 297Warning: sort() expects parameter 2 to be int, resource given in %s on line %d 298bool(false) 299array(3) { 300 [0]=> 301 int(10) 302 [1]=> 303 int(2) 304 [2]=> 305 int(45) 306} 307Done 308