Annotation of embedaddon/php/ext/standard/tests/array/array_unshift_variation4.phpt, revision 1.1.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>