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