1--TEST-- 2Test array_reverse() function : usage variations - assoc. array with diff. keys for 'array' argument 3--FILE-- 4<?php 5/* Prototype : array array_reverse(array $array [, bool $preserve_keys]) 6 * Description: Return input as a new array with the order of the entries reversed 7 * Source code: ext/standard/array.c 8*/ 9 10/* 11 * Testing the functionality of array_reverse() by giving associative arrays with different 12 * keys for $array argument 13*/ 14 15echo "*** Testing array_reverse() : usage variations ***\n"; 16 17//get an unset variable 18$unset_var = 10; 19unset ($unset_var); 20 21//get a resource variable 22$fp = fopen(__FILE__, "r"); 23 24//get a class 25class classA{ 26 public function __toString(){ 27 return "Class A object"; 28 } 29} 30 31// get a heredoc string 32$heredoc = <<<EOT 33Hello world 34EOT; 35 36// initializing the array 37$arrays = array ( 38 39 // empty array 40/*1*/ array(), 41 42 // arrays with integer keys 43 array(0 => "0"), 44 array(1 => "1"), 45 array(1 => "1", 2 => "2", 3 => "3", 4 => "4"), 46 47 // arrays with float keys 48/*5*/ array(2.3333 => "float"), 49 array(1.2 => "f1", 3.33 => "f2", 4.89999922839999 => "f3", 33333333.333333 => "f4"), 50 51 // arrays with string keys 52 array("\tHello" => 111, "re\td" => "color", "\v\fworld" => 2.2, "pen\n" => 33), 53/*8*/ array("\tHello" => 111, "re\td" => "color", "\v\fworld" => 2.2, "pen\n" => 33), 54 array("hello", $heredoc => "string"), // heredoc 55 56 // array with object, unset variable and resource variable 57 array(new classA() => 11, @$unset_var => "hello", $fp => 'resource'), 58 59 // array with mixed values 60/*11*/ array('hello' => 1, new classA() => 2, "fruit" => 2.2, $fp => 'resource', 133 => "int", 444.432 => "float", @$unset_var => "unset", $heredoc => "heredoc") 61); 62 63// loop through the various elements of $arrays to test array_reverse() 64$iterator = 1; 65foreach($arrays as $array) { 66 echo "-- Iteration $iterator --\n"; 67 // with default argument 68 echo "- default argument -\n"; 69 var_dump( array_reverse($array) ); 70 // with $preserve_keys argument 71 echo "- \$preserve keys = true -\n"; 72 var_dump( array_reverse($array, true) ); 73 echo "- \$preserve_keys = false -\n"; 74 var_dump( array_reverse($array, false) ); 75 $iterator++; 76}; 77 78// close the file resource used 79fclose($fp); 80 81echo "Done"; 82?> 83--EXPECTF-- 84*** Testing array_reverse() : usage variations *** 85 86Warning: Illegal offset type in %s on line %d 87 88Warning: Illegal offset type in %s on line %d 89 90Warning: Illegal offset type in %s on line %d 91 92Warning: Illegal offset type in %s on line %d 93-- Iteration 1 -- 94- default argument - 95array(0) { 96} 97- $preserve keys = true - 98array(0) { 99} 100- $preserve_keys = false - 101array(0) { 102} 103-- Iteration 2 -- 104- default argument - 105array(1) { 106 [0]=> 107 string(1) "0" 108} 109- $preserve keys = true - 110array(1) { 111 [0]=> 112 string(1) "0" 113} 114- $preserve_keys = false - 115array(1) { 116 [0]=> 117 string(1) "0" 118} 119-- Iteration 3 -- 120- default argument - 121array(1) { 122 [0]=> 123 string(1) "1" 124} 125- $preserve keys = true - 126array(1) { 127 [1]=> 128 string(1) "1" 129} 130- $preserve_keys = false - 131array(1) { 132 [0]=> 133 string(1) "1" 134} 135-- Iteration 4 -- 136- default argument - 137array(4) { 138 [0]=> 139 string(1) "4" 140 [1]=> 141 string(1) "3" 142 [2]=> 143 string(1) "2" 144 [3]=> 145 string(1) "1" 146} 147- $preserve keys = true - 148array(4) { 149 [4]=> 150 string(1) "4" 151 [3]=> 152 string(1) "3" 153 [2]=> 154 string(1) "2" 155 [1]=> 156 string(1) "1" 157} 158- $preserve_keys = false - 159array(4) { 160 [0]=> 161 string(1) "4" 162 [1]=> 163 string(1) "3" 164 [2]=> 165 string(1) "2" 166 [3]=> 167 string(1) "1" 168} 169-- Iteration 5 -- 170- default argument - 171array(1) { 172 [0]=> 173 string(5) "float" 174} 175- $preserve keys = true - 176array(1) { 177 [2]=> 178 string(5) "float" 179} 180- $preserve_keys = false - 181array(1) { 182 [0]=> 183 string(5) "float" 184} 185-- Iteration 6 -- 186- default argument - 187array(4) { 188 [0]=> 189 string(2) "f4" 190 [1]=> 191 string(2) "f3" 192 [2]=> 193 string(2) "f2" 194 [3]=> 195 string(2) "f1" 196} 197- $preserve keys = true - 198array(4) { 199 [33333333]=> 200 string(2) "f4" 201 [4]=> 202 string(2) "f3" 203 [3]=> 204 string(2) "f2" 205 [1]=> 206 string(2) "f1" 207} 208- $preserve_keys = false - 209array(4) { 210 [0]=> 211 string(2) "f4" 212 [1]=> 213 string(2) "f3" 214 [2]=> 215 string(2) "f2" 216 [3]=> 217 string(2) "f1" 218} 219-- Iteration 7 -- 220- default argument - 221array(4) { 222 ["pen 223"]=> 224 int(33) 225 ["world"]=> 226 float(2.2) 227 ["re d"]=> 228 string(5) "color" 229 [" Hello"]=> 230 int(111) 231} 232- $preserve keys = true - 233array(4) { 234 ["pen 235"]=> 236 int(33) 237 ["world"]=> 238 float(2.2) 239 ["re d"]=> 240 string(5) "color" 241 [" Hello"]=> 242 int(111) 243} 244- $preserve_keys = false - 245array(4) { 246 ["pen 247"]=> 248 int(33) 249 ["world"]=> 250 float(2.2) 251 ["re d"]=> 252 string(5) "color" 253 [" Hello"]=> 254 int(111) 255} 256-- Iteration 8 -- 257- default argument - 258array(4) { 259 ["pen 260"]=> 261 int(33) 262 ["world"]=> 263 float(2.2) 264 ["re d"]=> 265 string(5) "color" 266 [" Hello"]=> 267 int(111) 268} 269- $preserve keys = true - 270array(4) { 271 ["pen 272"]=> 273 int(33) 274 ["world"]=> 275 float(2.2) 276 ["re d"]=> 277 string(5) "color" 278 [" Hello"]=> 279 int(111) 280} 281- $preserve_keys = false - 282array(4) { 283 ["pen 284"]=> 285 int(33) 286 ["world"]=> 287 float(2.2) 288 ["re d"]=> 289 string(5) "color" 290 [" Hello"]=> 291 int(111) 292} 293-- Iteration 9 -- 294- default argument - 295array(2) { 296 ["Hello world"]=> 297 string(6) "string" 298 [0]=> 299 string(5) "hello" 300} 301- $preserve keys = true - 302array(2) { 303 ["Hello world"]=> 304 string(6) "string" 305 [0]=> 306 string(5) "hello" 307} 308- $preserve_keys = false - 309array(2) { 310 ["Hello world"]=> 311 string(6) "string" 312 [0]=> 313 string(5) "hello" 314} 315-- Iteration 10 -- 316- default argument - 317array(1) { 318 [""]=> 319 string(5) "hello" 320} 321- $preserve keys = true - 322array(1) { 323 [""]=> 324 string(5) "hello" 325} 326- $preserve_keys = false - 327array(1) { 328 [""]=> 329 string(5) "hello" 330} 331-- Iteration 11 -- 332- default argument - 333array(6) { 334 ["Hello world"]=> 335 string(7) "heredoc" 336 [""]=> 337 string(5) "unset" 338 [0]=> 339 string(5) "float" 340 [1]=> 341 string(3) "int" 342 ["fruit"]=> 343 float(2.2) 344 ["hello"]=> 345 int(1) 346} 347- $preserve keys = true - 348array(6) { 349 ["Hello world"]=> 350 string(7) "heredoc" 351 [""]=> 352 string(5) "unset" 353 [444]=> 354 string(5) "float" 355 [133]=> 356 string(3) "int" 357 ["fruit"]=> 358 float(2.2) 359 ["hello"]=> 360 int(1) 361} 362- $preserve_keys = false - 363array(6) { 364 ["Hello world"]=> 365 string(7) "heredoc" 366 [""]=> 367 string(5) "unset" 368 [0]=> 369 string(5) "float" 370 [1]=> 371 string(3) "int" 372 ["fruit"]=> 373 float(2.2) 374 ["hello"]=> 375 int(1) 376} 377Done 378