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