Annotation of embedaddon/php/ext/standard/tests/array/array_unshift_variation4.phpt, revision 1.1
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
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>