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