1--TEST-- 2Test array_unshift() function : passing object for 'var' argument 3--FILE-- 4<?php 5/* 6 * Testing the functionality of array_unshift() by passing 7 * an object to the $var argument 8*/ 9 10echo "*** Testing array_unshift() : Passing object to \$var argument ***\n"; 11 12// simple class with a variable and method 13class SimpleClass 14{ 15 public $var1 = 1; 16 public function fun1() { 17 return $var1; 18 } 19} 20 21// class without members 22class EmptyClass 23{ 24} 25 26// abstract class 27abstract class AbstractClass 28{ 29 protected $var2 = 5; 30 abstract function emptyFunction(); 31} 32 33// class deriving the above abstract class 34class ChildClass extends AbstractClass 35{ 36 private $var3; 37 public function emptyFunction() { 38 echo "defined in child"; 39 } 40} 41 42// class with final method 43class FinalClass 44{ 45 private $var4; 46 final function finalMethod() { 47 echo "This function can't be overloaded"; 48 } 49} 50 51// class with static members 52class StaticClass 53{ 54 static $var5 = 2; 55 public static function staticMethod() { 56 echo "This is a static method"; 57 } 58} 59 60// array to be passed to $array argument 61$array = array('f' => "first", "s" => 'second', 1, 2.222); 62 63// array containing different types of objects as elements 64$vars = array( 65 new SimpleClass(), 66 new EmptyClass(), 67 new ChildClass(), 68 new FinalClass(), 69 new StaticClass() 70); 71 72// loop through the various elements of $arrays to check the functionality of array_unshift 73$iterator = 1; 74foreach($vars as $var) { 75 echo "-- Iteration $iterator --\n"; 76 77 /* with default argument */ 78 // returns element count in the resulting array after arguments are pushed to 79 // beginning of the given array 80 $temp_array = $array; 81 var_dump( array_unshift($temp_array, $var) ); 82 83 // dump the resulting array 84 var_dump($temp_array); 85 86 /* with optional arguments */ 87 // returns element count in the resulting array after arguments are pushed to 88 // beginning of the given array 89 $temp_array = $array; 90 var_dump( array_unshift($temp_array, $var, "hello", 'world') ); 91 92 // dump the resulting array 93 var_dump($temp_array); 94 $iterator++; 95} 96 97echo "Done"; 98?> 99--EXPECTF-- 100*** Testing array_unshift() : Passing object to $var argument *** 101-- Iteration 1 -- 102int(5) 103array(5) { 104 [0]=> 105 object(SimpleClass)#%d (1) { 106 ["var1"]=> 107 int(1) 108 } 109 ["f"]=> 110 string(5) "first" 111 ["s"]=> 112 string(6) "second" 113 [1]=> 114 int(1) 115 [2]=> 116 float(2.222) 117} 118int(7) 119array(7) { 120 [0]=> 121 object(SimpleClass)#%d (1) { 122 ["var1"]=> 123 int(1) 124 } 125 [1]=> 126 string(5) "hello" 127 [2]=> 128 string(5) "world" 129 ["f"]=> 130 string(5) "first" 131 ["s"]=> 132 string(6) "second" 133 [3]=> 134 int(1) 135 [4]=> 136 float(2.222) 137} 138-- Iteration 2 -- 139int(5) 140array(5) { 141 [0]=> 142 object(EmptyClass)#%d (0) { 143 } 144 ["f"]=> 145 string(5) "first" 146 ["s"]=> 147 string(6) "second" 148 [1]=> 149 int(1) 150 [2]=> 151 float(2.222) 152} 153int(7) 154array(7) { 155 [0]=> 156 object(EmptyClass)#%d (0) { 157 } 158 [1]=> 159 string(5) "hello" 160 [2]=> 161 string(5) "world" 162 ["f"]=> 163 string(5) "first" 164 ["s"]=> 165 string(6) "second" 166 [3]=> 167 int(1) 168 [4]=> 169 float(2.222) 170} 171-- Iteration 3 -- 172int(5) 173array(5) { 174 [0]=> 175 object(ChildClass)#%d (2) { 176 ["var3":"ChildClass":private]=> 177 NULL 178 ["var2":protected]=> 179 int(5) 180 } 181 ["f"]=> 182 string(5) "first" 183 ["s"]=> 184 string(6) "second" 185 [1]=> 186 int(1) 187 [2]=> 188 float(2.222) 189} 190int(7) 191array(7) { 192 [0]=> 193 object(ChildClass)#%d (2) { 194 ["var3":"ChildClass":private]=> 195 NULL 196 ["var2":protected]=> 197 int(5) 198 } 199 [1]=> 200 string(5) "hello" 201 [2]=> 202 string(5) "world" 203 ["f"]=> 204 string(5) "first" 205 ["s"]=> 206 string(6) "second" 207 [3]=> 208 int(1) 209 [4]=> 210 float(2.222) 211} 212-- Iteration 4 -- 213int(5) 214array(5) { 215 [0]=> 216 object(FinalClass)#%d (1) { 217 ["var4":"FinalClass":private]=> 218 NULL 219 } 220 ["f"]=> 221 string(5) "first" 222 ["s"]=> 223 string(6) "second" 224 [1]=> 225 int(1) 226 [2]=> 227 float(2.222) 228} 229int(7) 230array(7) { 231 [0]=> 232 object(FinalClass)#%d (1) { 233 ["var4":"FinalClass":private]=> 234 NULL 235 } 236 [1]=> 237 string(5) "hello" 238 [2]=> 239 string(5) "world" 240 ["f"]=> 241 string(5) "first" 242 ["s"]=> 243 string(6) "second" 244 [3]=> 245 int(1) 246 [4]=> 247 float(2.222) 248} 249-- Iteration 5 -- 250int(5) 251array(5) { 252 [0]=> 253 object(StaticClass)#%d (0) { 254 } 255 ["f"]=> 256 string(5) "first" 257 ["s"]=> 258 string(6) "second" 259 [1]=> 260 int(1) 261 [2]=> 262 float(2.222) 263} 264int(7) 265array(7) { 266 [0]=> 267 object(StaticClass)#%d (0) { 268 } 269 [1]=> 270 string(5) "hello" 271 [2]=> 272 string(5) "world" 273 ["f"]=> 274 string(5) "first" 275 ["s"]=> 276 string(6) "second" 277 [3]=> 278 int(1) 279 [4]=> 280 float(2.222) 281} 282Done 283