Annotation of embedaddon/php/ext/standard/tests/array/array_merge_variation4.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: Test array_merge() function : usage variations - Diff. data types as array keys
                      3: --FILE--
                      4: <?php
                      5: /* Prototype  : array array_merge(array $arr1, array $arr2 [, array $...])
                      6:  * Description: Merges elements from passed arrays into one array 
                      7:  * Source code: ext/standard/array.c
                      8:  */
                      9: 
                     10: /*
                     11:  * Pass an array with different data types as keys to test how array_merge 
                     12:  * adds it onto an existing array
                     13:  */
                     14: 
                     15: echo "*** Testing array_merge() : usage variations ***\n";
                     16: 
                     17: // Initialise function arguments not being substituted
                     18: $arr = array ('one' => 1, 'two' => 2);
                     19: 
                     20: //get an unset variable
                     21: $unset_var = 10;
                     22: unset ($unset_var);
                     23: 
                     24: // heredoc string
                     25: $heredoc = <<<EOT
                     26: hello world
                     27: EOT;
                     28: 
                     29: // arrays with keys as different data types to be passed as $input
                     30: $inputs = array(
                     31: 
                     32:        // int data
                     33: /*1*/  'int' => array(
                     34:        0 => 'zero',
                     35:        1 => 'one',
                     36:        12345 => 'positive',
                     37:        -2345 => 'negative',
                     38:        ),
                     39: 
                     40:        // float data
                     41: /*2*/  'float' => array(
                     42:        10.5 => 'positive',
                     43:        -10.5 => 'negative',
                     44:        .5 => 'half',
                     45:        ),
                     46:        
                     47: /*3*/  'extreme floats' => array(
                     48:        12.3456789000e10 => 'large',
                     49:        12.3456789000E-10 => 'small',
                     50:        ),
                     51: 
                     52:        // null data
                     53: /*4*/  'null uppercase' => array(
                     54:        NULL => 'null 1',
                     55:        ), 
                     56:        
                     57: /*5*/  'null lowercase' => array(
                     58:        null => 'null 2',
                     59:        ),
                     60: 
                     61:        // boolean data
                     62: /*6*/ 'bool lowercase' => array(
                     63:        true => 'lowert',
                     64:        false => 'lowerf',
                     65:        ),
                     66:        
                     67: /*7*/  'bool uppercase' => array(
                     68:        TRUE => 'uppert',
                     69:        FALSE => 'upperf',
                     70:        ),
                     71:        
                     72:        // empty data
                     73: /*8*/ 'empty double quotes' => array(
                     74:        "" => 'emptyd',
                     75:        ),
                     76:        
                     77: /*9*/  'empty single quotes' => array(
                     78:        '' => 'emptys',
                     79:        ),
                     80: 
                     81:        // string data
                     82: /*10*/ 'string' => array(
                     83:        "stringd" => 'stringd',
                     84:        'strings' => 'strings',
                     85:        $heredoc => 'stringh',
                     86:        ),
                     87: 
                     88:        // undefined data
                     89: /*11*/ 'undefined' => array(
                     90:        @$undefined_var => 'undefined',
                     91:        ),
                     92: 
                     93:        // unset data
                     94: /*12*/ 'unset' => array(
                     95:        @$unset_var => 'unset',
                     96:        ),
                     97: );
                     98: 
                     99: // loop through each element of $inputs to check the behavior of array_merge
                    100: $iterator = 1;
                    101: foreach($inputs as $key => $input) {
                    102:   echo "\n-- Iteration $iterator: $key data --\n";
                    103:   var_dump( array_merge($input, $arr) );
                    104:   var_dump( array_merge($arr, $input) );
                    105:   $iterator++;
                    106: };
                    107: 
                    108: echo "Done";
                    109: ?>
                    110: --EXPECTF--
                    111: *** Testing array_merge() : usage variations ***
                    112: 
                    113: -- Iteration 1: int data --
                    114: array(6) {
                    115:   [0]=>
                    116:   string(4) "zero"
                    117:   [1]=>
                    118:   string(3) "one"
                    119:   [2]=>
                    120:   string(8) "positive"
                    121:   [3]=>
                    122:   string(8) "negative"
                    123:   ["one"]=>
                    124:   int(1)
                    125:   ["two"]=>
                    126:   int(2)
                    127: }
                    128: array(6) {
                    129:   ["one"]=>
                    130:   int(1)
                    131:   ["two"]=>
                    132:   int(2)
                    133:   [0]=>
                    134:   string(4) "zero"
                    135:   [1]=>
                    136:   string(3) "one"
                    137:   [2]=>
                    138:   string(8) "positive"
                    139:   [3]=>
                    140:   string(8) "negative"
                    141: }
                    142: 
                    143: -- Iteration 2: float data --
                    144: array(5) {
                    145:   [0]=>
                    146:   string(8) "positive"
                    147:   [1]=>
                    148:   string(8) "negative"
                    149:   [2]=>
                    150:   string(4) "half"
                    151:   ["one"]=>
                    152:   int(1)
                    153:   ["two"]=>
                    154:   int(2)
                    155: }
                    156: array(5) {
                    157:   ["one"]=>
                    158:   int(1)
                    159:   ["two"]=>
                    160:   int(2)
                    161:   [0]=>
                    162:   string(8) "positive"
                    163:   [1]=>
                    164:   string(8) "negative"
                    165:   [2]=>
                    166:   string(4) "half"
                    167: }
                    168: 
                    169: -- Iteration 3: extreme floats data --
                    170: array(4) {
                    171:   [0]=>
                    172:   string(5) "large"
                    173:   [1]=>
                    174:   string(5) "small"
                    175:   ["one"]=>
                    176:   int(1)
                    177:   ["two"]=>
                    178:   int(2)
                    179: }
                    180: array(4) {
                    181:   ["one"]=>
                    182:   int(1)
                    183:   ["two"]=>
                    184:   int(2)
                    185:   [0]=>
                    186:   string(5) "large"
                    187:   [1]=>
                    188:   string(5) "small"
                    189: }
                    190: 
                    191: -- Iteration 4: null uppercase data --
                    192: array(3) {
                    193:   [""]=>
                    194:   string(6) "null 1"
                    195:   ["one"]=>
                    196:   int(1)
                    197:   ["two"]=>
                    198:   int(2)
                    199: }
                    200: array(3) {
                    201:   ["one"]=>
                    202:   int(1)
                    203:   ["two"]=>
                    204:   int(2)
                    205:   [""]=>
                    206:   string(6) "null 1"
                    207: }
                    208: 
                    209: -- Iteration 5: null lowercase data --
                    210: array(3) {
                    211:   [""]=>
                    212:   string(6) "null 2"
                    213:   ["one"]=>
                    214:   int(1)
                    215:   ["two"]=>
                    216:   int(2)
                    217: }
                    218: array(3) {
                    219:   ["one"]=>
                    220:   int(1)
                    221:   ["two"]=>
                    222:   int(2)
                    223:   [""]=>
                    224:   string(6) "null 2"
                    225: }
                    226: 
                    227: -- Iteration 6: bool lowercase data --
                    228: array(4) {
                    229:   [0]=>
                    230:   string(6) "lowert"
                    231:   [1]=>
                    232:   string(6) "lowerf"
                    233:   ["one"]=>
                    234:   int(1)
                    235:   ["two"]=>
                    236:   int(2)
                    237: }
                    238: array(4) {
                    239:   ["one"]=>
                    240:   int(1)
                    241:   ["two"]=>
                    242:   int(2)
                    243:   [0]=>
                    244:   string(6) "lowert"
                    245:   [1]=>
                    246:   string(6) "lowerf"
                    247: }
                    248: 
                    249: -- Iteration 7: bool uppercase data --
                    250: array(4) {
                    251:   [0]=>
                    252:   string(6) "uppert"
                    253:   [1]=>
                    254:   string(6) "upperf"
                    255:   ["one"]=>
                    256:   int(1)
                    257:   ["two"]=>
                    258:   int(2)
                    259: }
                    260: array(4) {
                    261:   ["one"]=>
                    262:   int(1)
                    263:   ["two"]=>
                    264:   int(2)
                    265:   [0]=>
                    266:   string(6) "uppert"
                    267:   [1]=>
                    268:   string(6) "upperf"
                    269: }
                    270: 
                    271: -- Iteration 8: empty double quotes data --
                    272: array(3) {
                    273:   [""]=>
                    274:   string(6) "emptyd"
                    275:   ["one"]=>
                    276:   int(1)
                    277:   ["two"]=>
                    278:   int(2)
                    279: }
                    280: array(3) {
                    281:   ["one"]=>
                    282:   int(1)
                    283:   ["two"]=>
                    284:   int(2)
                    285:   [""]=>
                    286:   string(6) "emptyd"
                    287: }
                    288: 
                    289: -- Iteration 9: empty single quotes data --
                    290: array(3) {
                    291:   [""]=>
                    292:   string(6) "emptys"
                    293:   ["one"]=>
                    294:   int(1)
                    295:   ["two"]=>
                    296:   int(2)
                    297: }
                    298: array(3) {
                    299:   ["one"]=>
                    300:   int(1)
                    301:   ["two"]=>
                    302:   int(2)
                    303:   [""]=>
                    304:   string(6) "emptys"
                    305: }
                    306: 
                    307: -- Iteration 10: string data --
                    308: array(5) {
                    309:   ["stringd"]=>
                    310:   string(7) "stringd"
                    311:   ["strings"]=>
                    312:   string(7) "strings"
                    313:   ["hello world"]=>
                    314:   string(7) "stringh"
                    315:   ["one"]=>
                    316:   int(1)
                    317:   ["two"]=>
                    318:   int(2)
                    319: }
                    320: array(5) {
                    321:   ["one"]=>
                    322:   int(1)
                    323:   ["two"]=>
                    324:   int(2)
                    325:   ["stringd"]=>
                    326:   string(7) "stringd"
                    327:   ["strings"]=>
                    328:   string(7) "strings"
                    329:   ["hello world"]=>
                    330:   string(7) "stringh"
                    331: }
                    332: 
                    333: -- Iteration 11: undefined data --
                    334: array(3) {
                    335:   [""]=>
                    336:   string(9) "undefined"
                    337:   ["one"]=>
                    338:   int(1)
                    339:   ["two"]=>
                    340:   int(2)
                    341: }
                    342: array(3) {
                    343:   ["one"]=>
                    344:   int(1)
                    345:   ["two"]=>
                    346:   int(2)
                    347:   [""]=>
                    348:   string(9) "undefined"
                    349: }
                    350: 
                    351: -- Iteration 12: unset data --
                    352: array(3) {
                    353:   [""]=>
                    354:   string(5) "unset"
                    355:   ["one"]=>
                    356:   int(1)
                    357:   ["two"]=>
                    358:   int(2)
                    359: }
                    360: array(3) {
                    361:   ["one"]=>
                    362:   int(1)
                    363:   ["two"]=>
                    364:   int(2)
                    365:   [""]=>
                    366:   string(5) "unset"
                    367: }
                    368: Done

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>