Annotation of embedaddon/php/ext/standard/tests/array/array_shift_variation2.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Test array_shift() function : usage variations - Pass arrays of different data types
! 3: --FILE--
! 4: <?php
! 5: /* Prototype : mixed array_shift(array &$stack)
! 6: * Description: Pops an element off the beginning of the array
! 7: * Source code: ext/standard/array.c
! 8: */
! 9:
! 10: /*
! 11: * Pass arrays where values are of one data type to test behaviour of array_shift()
! 12: */
! 13:
! 14: echo "*** Testing array_shift() : usage variations ***\n";
! 15:
! 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 $stack 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 array_shift
! 109: $iterator = 1;
! 110: foreach($inputs as $key => $input) {
! 111: echo "\n-- Iteration $iterator: $key data --\n";
! 112: var_dump( array_shift($input) );
! 113: var_dump($input);
! 114: $iterator++;
! 115: };
! 116:
! 117: fclose($fp);
! 118:
! 119:
! 120: echo "Done";
! 121: ?>
! 122: --EXPECTF--
! 123: *** Testing array_shift() : usage variations ***
! 124:
! 125: -- Iteration 1: int data --
! 126: int(0)
! 127: array(3) {
! 128: [0]=>
! 129: int(1)
! 130: [1]=>
! 131: int(12345)
! 132: [2]=>
! 133: int(-2345)
! 134: }
! 135:
! 136: -- Iteration 2: float data --
! 137: float(10.5)
! 138: array(4) {
! 139: [0]=>
! 140: float(-10.5)
! 141: [1]=>
! 142: float(123456789000)
! 143: [2]=>
! 144: float(1.23456789E-9)
! 145: [3]=>
! 146: float(0.5)
! 147: }
! 148:
! 149: -- Iteration 3: null data --
! 150: NULL
! 151: array(1) {
! 152: [0]=>
! 153: NULL
! 154: }
! 155:
! 156: -- Iteration 4: bool data --
! 157: bool(true)
! 158: array(3) {
! 159: [0]=>
! 160: bool(false)
! 161: [1]=>
! 162: bool(true)
! 163: [2]=>
! 164: bool(false)
! 165: }
! 166:
! 167: -- Iteration 5: empty string data --
! 168: string(0) ""
! 169: array(1) {
! 170: [0]=>
! 171: string(0) ""
! 172: }
! 173:
! 174: -- Iteration 6: empty array data --
! 175: NULL
! 176: array(0) {
! 177: }
! 178:
! 179: -- Iteration 7: string data --
! 180: string(6) "string"
! 181: array(2) {
! 182: [0]=>
! 183: string(6) "string"
! 184: [1]=>
! 185: string(11) "hello world"
! 186: }
! 187:
! 188: -- Iteration 8: object data --
! 189: object(classA)#%d (0) {
! 190: }
! 191: array(0) {
! 192: }
! 193:
! 194: -- Iteration 9: undefined data --
! 195: NULL
! 196: array(0) {
! 197: }
! 198:
! 199: -- Iteration 10: unset data --
! 200: NULL
! 201: array(0) {
! 202: }
! 203:
! 204: -- Iteration 11: resource data --
! 205: resource(%d) of type (stream)
! 206: array(0) {
! 207: }
! 208: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>