Annotation of embedaddon/php/ext/standard/tests/array/array_shift_variation3.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test array_shift() function : usage variations - Pass array with different data types as keys
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 with different data types as keys to test how array_shift() re-assigns keys
12: */
13:
14: echo "*** Testing array_shift() : usage variations ***\n";
15:
16: //get an unset variable
17: $unset_var = 10;
18: unset ($unset_var);
19:
20: // heredoc string
21: $heredoc = <<<EOT
22: hello world
23: EOT;
24:
25: // unexpected values to be passed to $stack argument
26: $inputs = array(
27:
28: // int data
29: /*1*/ 'int' => array(
30: 0 => 'zero',
31: 1 => 'one',
32: 12345 => 'positive',
33: -2345 => 'negative',
34: ),
35:
36: // float data
37: /*2*/ 'float' => array(
38: 10.5 => 'positive',
39: -10.5 => 'negative',
40: .5 => 'half',
41: ),
42:
43: /*3*/ 'extreme floats' => array(
44: 12.3456789000e10 => 'large',
45: 12.3456789000E-10 => 'small',
46: ),
47:
48: // null data
49: /*4*/ 'null uppercase' => array(
50: NULL => 'null 1',
51: ),
52:
53: /*5*/ 'null lowercase' => array(
54: null => 'null 2',
55: ),
56:
57: // boolean data
58: /*6*/ 'bool lowercase' => array(
59: true => 'lowert',
60: false => 'lowerf',
61: ),
62:
63: /*7*/ 'bool uppercase' => array(
64: TRUE => 'uppert',
65: FALSE => 'upperf',
66: ),
67:
68: // empty data
69: /*8*/ 'empty double quotes' => array(
70: "" => 'emptyd',
71: ),
72:
73: /*9*/ 'empty single quotes' => array(
74: '' => 'emptys',
75: ),
76:
77: // string data
78: /*10*/ 'string' => array(
79: "stringd" => 'stringd',
80: 'strings' => 'strings',
81: $heredoc => 'stringh',
82: ),
83:
84: // undefined data
85: /*11*/ 'undefined' => array(
86: @$undefined_var => 'undefined',
87: ),
88:
89: // unset data
90: /*12*/ 'unset' => array(
91: @$unset_var => 'unset',
92: ),
93: );
94:
95: // loop through each element of $inputs to check the behavior of array_shift()
96: $iterator = 1;
97: foreach($inputs as $key => $input) {
98: echo "\n-- Iteration $iterator : $key data --\n";
99: var_dump( array_shift($input) );
100: var_dump($input);
101: $iterator++;
102: };
103:
104: echo "Done";
105: ?>
106: --EXPECTF--
107: *** Testing array_shift() : usage variations ***
108:
109: -- Iteration 1 : int data --
110: string(4) "zero"
111: array(3) {
112: [0]=>
113: string(3) "one"
114: [1]=>
115: string(8) "positive"
116: [2]=>
117: string(8) "negative"
118: }
119:
120: -- Iteration 2 : float data --
121: string(8) "positive"
122: array(2) {
123: [0]=>
124: string(8) "negative"
125: [1]=>
126: string(4) "half"
127: }
128:
129: -- Iteration 3 : extreme floats data --
130: string(5) "large"
131: array(1) {
132: [0]=>
133: string(5) "small"
134: }
135:
136: -- Iteration 4 : null uppercase data --
137: string(6) "null 1"
138: array(0) {
139: }
140:
141: -- Iteration 5 : null lowercase data --
142: string(6) "null 2"
143: array(0) {
144: }
145:
146: -- Iteration 6 : bool lowercase data --
147: string(6) "lowert"
148: array(1) {
149: [0]=>
150: string(6) "lowerf"
151: }
152:
153: -- Iteration 7 : bool uppercase data --
154: string(6) "uppert"
155: array(1) {
156: [0]=>
157: string(6) "upperf"
158: }
159:
160: -- Iteration 8 : empty double quotes data --
161: string(6) "emptyd"
162: array(0) {
163: }
164:
165: -- Iteration 9 : empty single quotes data --
166: string(6) "emptys"
167: array(0) {
168: }
169:
170: -- Iteration 10 : string data --
171: string(7) "stringd"
172: array(2) {
173: ["strings"]=>
174: string(7) "strings"
175: ["hello world"]=>
176: string(7) "stringh"
177: }
178:
179: -- Iteration 11 : undefined data --
180: string(9) "undefined"
181: array(0) {
182: }
183:
184: -- Iteration 12 : unset data --
185: string(5) "unset"
186: array(0) {
187: }
188: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>