Annotation of embedaddon/php/ext/standard/tests/array/array_push.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test array_push() function
3: --FILE--
4: <?php
5:
6: /* Prototype: int array_push( array &array );
7: * Description: Push one or more elements onto the end of array
8: and returns the new number of elements in the array.
9: */
10:
11: $empty_array = array();
12: $number = 5;
13: $str = "abc";
14:
15:
16: /* Various combinations of arrays to be used for the test */
17: $mixed_array = array(
18: array(),
19: array( 1,2,3,4,5,6,7,8,9 ),
20: array( "One", "_Two", "Three", "Four", "Five" ),
21: array( 6, "six", 7, "seven", 8, "eight", 9, "nine" ),
22: array( "a" => "aaa", "A" => "AAA", "c" => "ccc", "d" => "ddd", "e" => "eee" ),
23: array( "1" => "one", "2" => "two", "3" => "three", "4" => "four", "5" => "five" ),
24: array( 1 => "one", 2 => "two", 3 => 7, 4 => "four", 5 => "five" ),
25: array( "f" => "fff", "1" => "one", 4 => 6, "" => "blank", 2.4 => "float", "F" => "FFF",
26: "blank" => "", 3.7 => 3.7, 5.4 => 7, 6 => 8.6, '5' => "Five", "4name" => "jonny", "a" => NULL, NULL => 3 ),
27: array( 12, "name", 'age', '45' ),
28: array( array("oNe", "tWo", 4), array(10, 20, 30, 40, 50), array() ),
29: array( "one" => 1, "one" => 2, "three" => 3, 3, 4, 3 => 33, 4 => 44, 5, 6,
30: 5.4 => 54, 5.7 => 57, "5.4" => 554, "5.7" => 557 )
31: );
32:
33: /* Error Conditions */
34: echo "\n*** Testing Error Conditions ***\n";
35:
36: /* Zero argument */
37: var_dump( array_push() );
38:
39: /* Scalar argument */
40: var_dump( array_push($number, 22) );
41:
42: /* String argument */
43: var_dump( array_push($str, 22) );
44:
45: /* Invalid Number of arguments */
46: var_dump( array_push($mixed_array[1],1,2) );
47:
48: /* Empty Array as argument */
49: var_dump( array_push($empty_array, 2) );
50:
51:
52: /* Loop to test normal functionality with different arrays inputs */
53: echo "\n*** Testing with various array inputs ***\n";
54:
55: $counter = 1;
56: foreach( $mixed_array as $sub_array )
57: {
58: echo "\n-- Input Array for Iteration $counter is --\n";
59: print_r( $sub_array );
60: echo "\nOutput after push is :\n";
61: var_dump( array_push($sub_array, 22, "abc") );
62: $counter++;
63: }
64:
65: /* Checking for return value and the new array formed from push operation */
66: echo "\n*** Checking for return value and the new array formed from push operation ***\n";
67: var_dump( array_push($mixed_array[2], 22, 33, "44") );
68: var_dump( $mixed_array[2] );
69:
70: echo"\nDone";
71: ?>
72: --EXPECTF--
73: *** Testing Error Conditions ***
74:
75: Warning: array_push() expects at least 2 parameters, 0 given in %s on line %d
76: NULL
77:
78: Warning: array_push() expects parameter 1 to be array, integer given in %s on line %d
79: NULL
80:
81: Warning: array_push() expects parameter 1 to be array, string given in %s on line %d
82: NULL
83: int(11)
84: int(1)
85:
86: *** Testing with various array inputs ***
87:
88: -- Input Array for Iteration 1 is --
89: Array
90: (
91: )
92:
93: Output after push is :
94: int(2)
95:
96: -- Input Array for Iteration 2 is --
97: Array
98: (
99: [0] => 1
100: [1] => 2
101: [2] => 3
102: [3] => 4
103: [4] => 5
104: [5] => 6
105: [6] => 7
106: [7] => 8
107: [8] => 9
108: [9] => 1
109: [10] => 2
110: )
111:
112: Output after push is :
113: int(13)
114:
115: -- Input Array for Iteration 3 is --
116: Array
117: (
118: [0] => One
119: [1] => _Two
120: [2] => Three
121: [3] => Four
122: [4] => Five
123: )
124:
125: Output after push is :
126: int(7)
127:
128: -- Input Array for Iteration 4 is --
129: Array
130: (
131: [0] => 6
132: [1] => six
133: [2] => 7
134: [3] => seven
135: [4] => 8
136: [5] => eight
137: [6] => 9
138: [7] => nine
139: )
140:
141: Output after push is :
142: int(10)
143:
144: -- Input Array for Iteration 5 is --
145: Array
146: (
147: [a] => aaa
148: [A] => AAA
149: [c] => ccc
150: [d] => ddd
151: [e] => eee
152: )
153:
154: Output after push is :
155: int(7)
156:
157: -- Input Array for Iteration 6 is --
158: Array
159: (
160: [1] => one
161: [2] => two
162: [3] => three
163: [4] => four
164: [5] => five
165: )
166:
167: Output after push is :
168: int(7)
169:
170: -- Input Array for Iteration 7 is --
171: Array
172: (
173: [1] => one
174: [2] => two
175: [3] => 7
176: [4] => four
177: [5] => five
178: )
179:
180: Output after push is :
181: int(7)
182:
183: -- Input Array for Iteration 8 is --
184: Array
185: (
186: [f] => fff
187: [1] => one
188: [4] => 6
189: [] => 3
190: [2] => float
191: [F] => FFF
192: [blank] =>
193: [3] => 3.7
194: [5] => Five
195: [6] => 8.6
196: [4name] => jonny
197: [a] =>
198: )
199:
200: Output after push is :
201: int(14)
202:
203: -- Input Array for Iteration 9 is --
204: Array
205: (
206: [0] => 12
207: [1] => name
208: [2] => age
209: [3] => 45
210: )
211:
212: Output after push is :
213: int(6)
214:
215: -- Input Array for Iteration 10 is --
216: Array
217: (
218: [0] => Array
219: (
220: [0] => oNe
221: [1] => tWo
222: [2] => 4
223: )
224:
225: [1] => Array
226: (
227: [0] => 10
228: [1] => 20
229: [2] => 30
230: [3] => 40
231: [4] => 50
232: )
233:
234: [2] => Array
235: (
236: )
237:
238: )
239:
240: Output after push is :
241: int(5)
242:
243: -- Input Array for Iteration 11 is --
244: Array
245: (
246: [one] => 2
247: [three] => 3
248: [0] => 3
249: [1] => 4
250: [3] => 33
251: [4] => 44
252: [5] => 57
253: [6] => 6
254: [5.4] => 554
255: [5.7] => 557
256: )
257:
258: Output after push is :
259: int(12)
260:
261: *** Checking for return value and the new array formed from push operation ***
262: int(8)
263: array(8) {
264: [0]=>
265: string(3) "One"
266: [1]=>
267: string(4) "_Two"
268: [2]=>
269: string(5) "Three"
270: [3]=>
271: string(4) "Four"
272: [4]=>
273: string(4) "Five"
274: [5]=>
275: int(22)
276: [6]=>
277: int(33)
278: [7]=>
279: string(2) "44"
280: }
281:
282: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>