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

1.1       misho       1: --TEST--
                      2: Test each() function : usage variations - arrays of different data types
                      3: --FILE--
                      4: <?php
                      5: /* Prototype  : array each(array $arr)
                      6:  * Description: Return the currently pointed key..value pair in the passed array,
                      7:  * and advance the pointer to the next element 
                      8:  * Source code: Zend/zend_builtin_functions.c
                      9:  */
                     10: 
                     11: /*
                     12:  * Pass arrays of different data types as $arr argument to each() to test behaviour
                     13:  */
                     14: 
                     15: echo "*** Testing each() : usage variations ***\n";
                     16: 
                     17: //get an unset variable
                     18: $unset_var = 10;
                     19: unset ($unset_var);
                     20: 
                     21: // get a class
                     22: class classA
                     23: {
                     24:   public function __toString() {
                     25:     return "Class A object";
                     26:   }
                     27: }
                     28: 
                     29: // heredoc string
                     30: $heredoc = <<<EOT
                     31: hello world
                     32: EOT;
                     33: 
                     34: // get a resource variable
                     35: $fp = fopen(__FILE__, "r");
                     36: 
                     37: // arrays of different data types to be passed as $arr
                     38: $inputs = array(
                     39: 
                     40:        // int data
                     41: /*1*/  'int' => array(
                     42:           0,
                     43:        1,
                     44:        12345,
                     45:        -2345,
                     46:        ),
                     47: 
                     48:        // float data
                     49: /*2*/  'float' => array(
                     50:        10.5,
                     51:        -10.5,
                     52:        12.3456789000e10,
                     53:        12.3456789000E-10,
                     54:        .5,
                     55:        ),
                     56: 
                     57:        // null data
                     58: /*3*/ 'null' => array(
                     59:        NULL,
                     60:        null,
                     61:        ),
                     62: 
                     63:        // boolean data
                     64: /*4*/ 'bool' => array(
                     65:        true,
                     66:        false,
                     67:        TRUE,
                     68:        FALSE,
                     69:        ),
                     70:        
                     71:        // empty data
                     72: /*5*/ 'empty string' => array(
                     73:        "",
                     74:        '',
                     75:        ),
                     76:        
                     77: /*6*/ 'empty array' => array(
                     78:        ),
                     79: 
                     80:        // string data
                     81: /*7*/ 'string' => array(
                     82:        "string",
                     83:        'string',
                     84:        $heredoc,
                     85:        ),
                     86:        
                     87:        // object data
                     88: /*8*/ 'object' => array(
                     89:        new classA(),
                     90:        ),
                     91: 
                     92:        // undefined data
                     93: /*9*/ 'undefined' => array(
                     94:        @$undefined_var,
                     95:        ),
                     96: 
                     97:        // unset data
                     98: /*10*/ 'unset' => array(
                     99:        @$unset_var,
                    100:        ),
                    101: 
                    102:        // resource variable
                    103: /*11*/ 'resource' => array(
                    104:        $fp
                    105:        ),
                    106: );
                    107: 
                    108: // loop through each element of $inputs to check the behavior of each()
                    109: $iterator = 1;
                    110: foreach($inputs as $key => $input) {
                    111:   echo "\n-- Iteration $iterator: $key data --\n";
                    112:   var_dump( each($input) );
                    113:   $iterator++;
                    114: };
                    115: 
                    116: fclose($fp);
                    117: 
                    118: echo "Done";
                    119: ?>
                    120: 
                    121: --EXPECTF--
                    122: *** Testing each() : usage variations ***
                    123: 
                    124: -- Iteration 1: int data --
                    125: array(4) {
                    126:   [1]=>
                    127:   int(0)
                    128:   ["value"]=>
                    129:   int(0)
                    130:   [0]=>
                    131:   int(0)
                    132:   ["key"]=>
                    133:   int(0)
                    134: }
                    135: 
                    136: -- Iteration 2: float data --
                    137: array(4) {
                    138:   [1]=>
                    139:   float(10.5)
                    140:   ["value"]=>
                    141:   float(10.5)
                    142:   [0]=>
                    143:   int(0)
                    144:   ["key"]=>
                    145:   int(0)
                    146: }
                    147: 
                    148: -- Iteration 3: null data --
                    149: array(4) {
                    150:   [1]=>
                    151:   NULL
                    152:   ["value"]=>
                    153:   NULL
                    154:   [0]=>
                    155:   int(0)
                    156:   ["key"]=>
                    157:   int(0)
                    158: }
                    159: 
                    160: -- Iteration 4: bool data --
                    161: array(4) {
                    162:   [1]=>
                    163:   bool(true)
                    164:   ["value"]=>
                    165:   bool(true)
                    166:   [0]=>
                    167:   int(0)
                    168:   ["key"]=>
                    169:   int(0)
                    170: }
                    171: 
                    172: -- Iteration 5: empty string data --
                    173: array(4) {
                    174:   [1]=>
                    175:   string(0) ""
                    176:   ["value"]=>
                    177:   string(0) ""
                    178:   [0]=>
                    179:   int(0)
                    180:   ["key"]=>
                    181:   int(0)
                    182: }
                    183: 
                    184: -- Iteration 6: empty array data --
                    185: bool(false)
                    186: 
                    187: -- Iteration 7: string data --
                    188: array(4) {
                    189:   [1]=>
                    190:   string(6) "string"
                    191:   ["value"]=>
                    192:   string(6) "string"
                    193:   [0]=>
                    194:   int(0)
                    195:   ["key"]=>
                    196:   int(0)
                    197: }
                    198: 
                    199: -- Iteration 8: object data --
                    200: array(4) {
                    201:   [1]=>
                    202:   object(classA)#%d (0) {
                    203:   }
                    204:   ["value"]=>
                    205:   object(classA)#%d (0) {
                    206:   }
                    207:   [0]=>
                    208:   int(0)
                    209:   ["key"]=>
                    210:   int(0)
                    211: }
                    212: 
                    213: -- Iteration 9: undefined data --
                    214: array(4) {
                    215:   [1]=>
                    216:   NULL
                    217:   ["value"]=>
                    218:   NULL
                    219:   [0]=>
                    220:   int(0)
                    221:   ["key"]=>
                    222:   int(0)
                    223: }
                    224: 
                    225: -- Iteration 10: unset data --
                    226: array(4) {
                    227:   [1]=>
                    228:   NULL
                    229:   ["value"]=>
                    230:   NULL
                    231:   [0]=>
                    232:   int(0)
                    233:   ["key"]=>
                    234:   int(0)
                    235: }
                    236: 
                    237: -- Iteration 11: resource data --
                    238: array(4) {
                    239:   [1]=>
                    240:   resource(%d) of type (stream)
                    241:   ["value"]=>
                    242:   resource(%d) of type (stream)
                    243:   [0]=>
                    244:   int(0)
                    245:   ["key"]=>
                    246:   int(0)
                    247: }
                    248: Done

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