Annotation of embedaddon/php/ext/standard/tests/array/current_variation2.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Test current() function : usage variations - arrays containing different data types
! 3: --FILE--
! 4: <?php
! 5: /* Prototype : mixed current(array $array_arg)
! 6: * Description: Return the element currently pointed to by the internal array pointer
! 7: * Source code: ext/standard/array.c
! 8: * Alias to functions: pos
! 9: */
! 10:
! 11: /*
! 12: * Pass arrays of different data types as $array_arg to current() to test behaviour
! 13: */
! 14:
! 15: echo "*** Testing current() : 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 to $array_arg argument
! 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 current()
! 109: $iterator = 1;
! 110: foreach($inputs as $key => $input) {
! 111: echo "\n-- Iteration $iterator : $key data --\n";
! 112: var_dump( current($input) );
! 113: $iterator++;
! 114: };
! 115:
! 116: fclose($fp);
! 117: ?>
! 118: ===DONE===
! 119: --EXPECTF--
! 120: *** Testing current() : usage variations ***
! 121:
! 122: -- Iteration 1 : int data --
! 123: int(0)
! 124:
! 125: -- Iteration 2 : float data --
! 126: float(10.5)
! 127:
! 128: -- Iteration 3 : null data --
! 129: NULL
! 130:
! 131: -- Iteration 4 : bool data --
! 132: bool(true)
! 133:
! 134: -- Iteration 5 : empty string data --
! 135: string(0) ""
! 136:
! 137: -- Iteration 6 : empty array data --
! 138: bool(false)
! 139:
! 140: -- Iteration 7 : string data --
! 141: string(6) "string"
! 142:
! 143: -- Iteration 8 : object data --
! 144: object(classA)#%d (0) {
! 145: }
! 146:
! 147: -- Iteration 9 : undefined data --
! 148: NULL
! 149:
! 150: -- Iteration 10 : unset data --
! 151: NULL
! 152:
! 153: -- Iteration 11 : resource data --
! 154: resource(%d) of type (stream)
! 155: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>