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