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

1.1       misho       1: --TEST--
                      2: Test array_change_key_case() function : usage variations - different data types as keys
                      3: --FILE--
                      4: <?php
                      5: /* Prototype  : array array_change_key_case(array $input [, int $case])
                      6:  * Description: Retuns an array with all string keys lowercased [or uppercased] 
                      7:  * Source code: ext/standard/array.c
                      8:  */
                      9: 
                     10: /*
                     11:  * Pass arrays with different data types as keys to array_change_key_case()
                     12:  * to test conversion
                     13:  */
                     14: 
                     15: echo "*** Testing array_change_key_case() : usage variations ***\n";
                     16: 
                     17: //get an unset variable
                     18: $unset_var = 10;
                     19: unset ($unset_var);
                     20: 
                     21: // heredoc string
                     22: $heredoc = <<<EOT
                     23: hello world
                     24: EOT;
                     25: 
                     26: // arrays of different data types to be passed to $input argument
                     27: $inputs = array(
                     28: 
                     29:        // int data
                     30: /*1*/  'int' => array(
                     31:        0 => 'zero',
                     32:        1 => 'one',
                     33:        12345 => 'positive',
                     34:        -2345 => 'negative',
                     35:        ),
                     36: 
                     37:        // float data
                     38: /*2*/  'float' => array(
                     39:        10.5 => 'positive',
                     40:        -10.5 => 'negative',
                     41:        .5 => 'half',
                     42:        ),
                     43:        
                     44:        'extreme floats' => array(
                     45:        12.3456789000e6 => 'large',
                     46:        12.3456789000E-10 => 'small',
                     47:        ),
                     48: 
                     49:        // null data
                     50: /*3*/ 'null uppercase' => array(
                     51:        NULL => 'null 1',
                     52:        ), 
                     53:        'null lowercase' => array(
                     54:        null => 'null 2',
                     55:        ),
                     56: 
                     57:        // boolean data
                     58: /*4*/ 'bool lowercase' => array(
                     59:        true => 'lowert',
                     60:        false => 'lowerf',
                     61:        ),
                     62:        'bool uppercase' => array(
                     63:        TRUE => 'uppert',
                     64:        FALSE => 'upperf',
                     65:        ),
                     66:        
                     67:        // empty data
                     68: /*5*/ 'empty double quotes' => array(
                     69:        "" => 'emptyd',
                     70:        ),
                     71:        'empty single quotes' => array(
                     72:        '' => 'emptys',
                     73:        ),
                     74: 
                     75:        // string data
                     76: /*6*/ 'string' => array(
                     77:        "stringd" => 'stringd',
                     78:        'strings' => 'strings',
                     79:        $heredoc => 'stringh',
                     80:        ),
                     81: 
                     82:        // undefined data
                     83: /*8*/ 'undefined' => array(
                     84:        @$undefined_var => 'undefined',
                     85:        ),
                     86: 
                     87:        // unset data
                     88: /*9*/ 'unset' => array(
                     89:        @$unset_var => 'unset',
                     90:        ),
                     91: );
                     92: 
                     93: // loop through each sub-array of $inputs to check the behavior of array_change_key_case()
                     94: $iterator = 1;
                     95: foreach($inputs as $key => $input) {
                     96:   echo "\n-- Iteration $iterator : $key data --\n";
                     97:   var_dump( array_change_key_case($input, CASE_UPPER) );
                     98:   $iterator++;
                     99: };
                    100: 
                    101: echo "Done";
                    102: ?>
                    103: --EXPECTF--
                    104: *** Testing array_change_key_case() : usage variations ***
                    105: 
                    106: -- Iteration 1 : int data --
                    107: array(4) {
                    108:   [0]=>
                    109:   string(4) "zero"
                    110:   [1]=>
                    111:   string(3) "one"
                    112:   [12345]=>
                    113:   string(8) "positive"
                    114:   [-2345]=>
                    115:   string(8) "negative"
                    116: }
                    117: 
                    118: -- Iteration 2 : float data --
                    119: array(3) {
                    120:   [10]=>
                    121:   string(8) "positive"
                    122:   [-10]=>
                    123:   string(8) "negative"
                    124:   [0]=>
                    125:   string(4) "half"
                    126: }
                    127: 
                    128: -- Iteration 3 : extreme floats data --
                    129: array(2) {
                    130:   [12345678]=>
                    131:   string(5) "large"
                    132:   [0]=>
                    133:   string(5) "small"
                    134: }
                    135: 
                    136: -- Iteration 4 : null uppercase data --
                    137: array(1) {
                    138:   [""]=>
                    139:   string(6) "null 1"
                    140: }
                    141: 
                    142: -- Iteration 5 : null lowercase data --
                    143: array(1) {
                    144:   [""]=>
                    145:   string(6) "null 2"
                    146: }
                    147: 
                    148: -- Iteration 6 : bool lowercase data --
                    149: array(2) {
                    150:   [1]=>
                    151:   string(6) "lowert"
                    152:   [0]=>
                    153:   string(6) "lowerf"
                    154: }
                    155: 
                    156: -- Iteration 7 : bool uppercase data --
                    157: array(2) {
                    158:   [1]=>
                    159:   string(6) "uppert"
                    160:   [0]=>
                    161:   string(6) "upperf"
                    162: }
                    163: 
                    164: -- Iteration 8 : empty double quotes data --
                    165: array(1) {
                    166:   [""]=>
                    167:   string(6) "emptyd"
                    168: }
                    169: 
                    170: -- Iteration 9 : empty single quotes data --
                    171: array(1) {
                    172:   [""]=>
                    173:   string(6) "emptys"
                    174: }
                    175: 
                    176: -- Iteration 10 : string data --
                    177: array(3) {
                    178:   ["STRINGD"]=>
                    179:   string(7) "stringd"
                    180:   ["STRINGS"]=>
                    181:   string(7) "strings"
                    182:   ["HELLO WORLD"]=>
                    183:   string(7) "stringh"
                    184: }
                    185: 
                    186: -- Iteration 11 : undefined data --
                    187: array(1) {
                    188:   [""]=>
                    189:   string(9) "undefined"
                    190: }
                    191: 
                    192: -- Iteration 12 : unset data --
                    193: array(1) {
                    194:   [""]=>
                    195:   string(5) "unset"
                    196: }
                    197: Done

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