1--TEST-- 2Test krsort() function : usage variations - unexpected values for 'sort_flags' argument 3--FILE-- 4<?php 5/* Prototype : bool krsort(array &array_arg [, int sort_flags]) 6 * Description: Sort an array by key in reverse order, maintaining key to data correlation 7 * Source code: ext/standard/array.c 8*/ 9 10/* 11 * Testing krsort() by providing different unexpected values for flag argument 12*/ 13 14echo "*** Testing krsort() : 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// an array for checking unexpected behavior 24$unsorted_values = array(10 => 10, 2 => 2, 45 => 45); 25 26//array of unexpected 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 krsort() 72// when 'sort_flags' argument is supplied with different values 73echo "\n-- Testing krsort() by supplying different unexpected values for 'sort_flags' argument --\n"; 74 75$counter = 1; 76for($index = 0; $index < count($unexpected_values); $index ++) { 77 echo "-- Iteration $counter --\n"; 78 $value = $unexpected_values [$index]; 79 $temp_array = $unsorted_values; 80 var_dump( krsort($temp_array, $value) ); 81 var_dump($temp_array); 82 $counter++; 83} 84 85echo "Done"; 86?> 87--EXPECTF-- 88*** Testing krsort() : usage variations *** 89 90-- Testing krsort() by supplying different unexpected values for 'sort_flags' argument -- 91-- Iteration 1 -- 92bool(true) 93array(3) { 94 [45]=> 95 int(45) 96 [10]=> 97 int(10) 98 [2]=> 99 int(2) 100} 101-- Iteration 2 -- 102bool(true) 103array(3) { 104 [45]=> 105 int(45) 106 [2]=> 107 int(2) 108 [10]=> 109 int(10) 110} 111-- Iteration 3 -- 112bool(true) 113array(3) { 114 [45]=> 115 int(45) 116 [10]=> 117 int(10) 118 [2]=> 119 int(2) 120} 121-- Iteration 4 -- 122bool(true) 123array(3) { 124 [45]=> 125 int(45) 126 [10]=> 127 int(10) 128 [2]=> 129 int(2) 130} 131-- Iteration 5 -- 132bool(true) 133array(3) { 134 [45]=> 135 int(45) 136 [10]=> 137 int(10) 138 [2]=> 139 int(2) 140} 141-- Iteration 6 -- 142bool(true) 143array(3) { 144 [45]=> 145 int(45) 146 [10]=> 147 int(10) 148 [2]=> 149 int(2) 150} 151-- Iteration 7 -- 152bool(true) 153array(3) { 154 [45]=> 155 int(45) 156 [10]=> 157 int(10) 158 [2]=> 159 int(2) 160} 161-- Iteration 8 -- 162bool(true) 163array(3) { 164 [45]=> 165 int(45) 166 [10]=> 167 int(10) 168 [2]=> 169 int(2) 170} 171-- Iteration 9 -- 172bool(true) 173array(3) { 174 [45]=> 175 int(45) 176 [10]=> 177 int(10) 178 [2]=> 179 int(2) 180} 181-- Iteration 10 -- 182bool(true) 183array(3) { 184 [45]=> 185 int(45) 186 [10]=> 187 int(10) 188 [2]=> 189 int(2) 190} 191-- Iteration 11 -- 192bool(true) 193array(3) { 194 [45]=> 195 int(45) 196 [10]=> 197 int(10) 198 [2]=> 199 int(2) 200} 201-- Iteration 12 -- 202bool(true) 203array(3) { 204 [45]=> 205 int(45) 206 [10]=> 207 int(10) 208 [2]=> 209 int(2) 210} 211-- Iteration 13 -- 212 213Warning: krsort() expects parameter 2 to be int, string given in %s on line %d 214bool(false) 215array(3) { 216 [10]=> 217 int(10) 218 [2]=> 219 int(2) 220 [45]=> 221 int(45) 222} 223-- Iteration 14 -- 224 225Warning: krsort() expects parameter 2 to be int, string given in %s on line %d 226bool(false) 227array(3) { 228 [10]=> 229 int(10) 230 [2]=> 231 int(2) 232 [45]=> 233 int(45) 234} 235-- Iteration 15 -- 236 237Warning: krsort() expects parameter 2 to be int, string given in %s on line %d 238bool(false) 239array(3) { 240 [10]=> 241 int(10) 242 [2]=> 243 int(2) 244 [45]=> 245 int(45) 246} 247-- Iteration 16 -- 248 249Warning: krsort() expects parameter 2 to be int, string given in %s on line %d 250bool(false) 251array(3) { 252 [10]=> 253 int(10) 254 [2]=> 255 int(2) 256 [45]=> 257 int(45) 258} 259-- Iteration 17 -- 260 261Warning: krsort() expects parameter 2 to be int, object given in %s on line %d 262bool(false) 263array(3) { 264 [10]=> 265 int(10) 266 [2]=> 267 int(2) 268 [45]=> 269 int(45) 270} 271-- Iteration 18 -- 272bool(true) 273array(3) { 274 [45]=> 275 int(45) 276 [10]=> 277 int(10) 278 [2]=> 279 int(2) 280} 281-- Iteration 19 -- 282bool(true) 283array(3) { 284 [45]=> 285 int(45) 286 [10]=> 287 int(10) 288 [2]=> 289 int(2) 290} 291-- Iteration 20 -- 292 293Warning: krsort() expects parameter 2 to be int, resource given in %s on line %d 294bool(false) 295array(3) { 296 [10]=> 297 int(10) 298 [2]=> 299 int(2) 300 [45]=> 301 int(45) 302} 303Done 304