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