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>