Annotation of embedaddon/php/ext/standard/tests/array/array_unshift_object.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test array_unshift() function : passing object for 'var' argument
3: --FILE--
4: <?php
5: /* Prototype : int array_unshift(array $array, mixed $var [, mixed ...])
6: * Description: Pushes elements onto the beginning of the array
7: * Source code: ext/standard/array.c
8: */
9:
10: /*
11: * Testing the functionality of array_unshift() by passing
12: * an object to the $var argument
13: */
14:
15: echo "*** Testing array_unshift() : Passing object to \$var argument ***\n";
16:
17: // simple class with a variable and method
18: class SimpleClass
19: {
20: public $var1 = 1;
21: public function fun1() {
22: return $var1;
23: }
24: }
25:
26: // class without members
27: class EmptyClass
28: {
29: }
30:
31: // abstract class
32: abstract class AbstractClass
33: {
34: protected $var2 = 5;
35: abstract function emptyFunction();
36: }
37:
38: // class deriving the above abstract class
39: class ChildClass extends AbstractClass
40: {
41: private $var3;
42: public function emptyFunction() {
43: echo "defined in child";
44: }
45: }
46:
47: // class with final method
48: class FinalClass
49: {
50: private $var4;
51: final function finalMethod() {
52: echo "This function can't be overloaded";
53: }
54: }
55:
56: // class with static members
57: class StaticClass
58: {
59: static $var5 = 2;
60: public static function staticMethod() {
61: echo "This is a static method";
62: }
63: }
64:
65: // array to be passed to $array argument
66: $array = array('f' => "first", "s" => 'second', 1, 2.222);
67:
68: // array containing different types of objects as elements
69: $vars = array(
70: new SimpleClass(),
71: new EmptyClass(),
72: new ChildClass(),
73: new FinalClass(),
74: new StaticClass()
75: );
76:
77: // loop through the various elements of $arrays to check the functionality of array_unshift
78: $iterator = 1;
79: foreach($vars as $var) {
80: echo "-- Iteration $iterator --\n";
81:
82: /* with default argument */
83: // returns element count in the resulting array after arguments are pushed to
84: // beginning of the given array
85: $temp_array = $array;
86: var_dump( array_unshift($temp_array, $var) );
87:
88: // dump the resulting array
89: var_dump($temp_array);
90:
91: /* with optional arguments */
92: // returns element count in the resulting array after arguments are pushed to
93: // beginning of the given array
94: $temp_array = $array;
95: var_dump( array_unshift($temp_array, $var, "hello", 'world') );
96:
97: // dump the resulting array
98: var_dump($temp_array);
99: $iterator++;
100: }
101:
102: echo "Done";
103: ?>
104: --EXPECTF--
105: *** Testing array_unshift() : Passing object to $var argument ***
106: -- Iteration 1 --
107: int(5)
108: array(5) {
109: [0]=>
110: object(SimpleClass)#%d (1) {
111: ["var1"]=>
112: int(1)
113: }
114: ["f"]=>
115: string(5) "first"
116: ["s"]=>
117: string(6) "second"
118: [1]=>
119: int(1)
120: [2]=>
121: float(2.222)
122: }
123: int(7)
124: array(7) {
125: [0]=>
126: object(SimpleClass)#%d (1) {
127: ["var1"]=>
128: int(1)
129: }
130: [1]=>
131: string(5) "hello"
132: [2]=>
133: string(5) "world"
134: ["f"]=>
135: string(5) "first"
136: ["s"]=>
137: string(6) "second"
138: [3]=>
139: int(1)
140: [4]=>
141: float(2.222)
142: }
143: -- Iteration 2 --
144: int(5)
145: array(5) {
146: [0]=>
147: object(EmptyClass)#%d (0) {
148: }
149: ["f"]=>
150: string(5) "first"
151: ["s"]=>
152: string(6) "second"
153: [1]=>
154: int(1)
155: [2]=>
156: float(2.222)
157: }
158: int(7)
159: array(7) {
160: [0]=>
161: object(EmptyClass)#%d (0) {
162: }
163: [1]=>
164: string(5) "hello"
165: [2]=>
166: string(5) "world"
167: ["f"]=>
168: string(5) "first"
169: ["s"]=>
170: string(6) "second"
171: [3]=>
172: int(1)
173: [4]=>
174: float(2.222)
175: }
176: -- Iteration 3 --
177: int(5)
178: array(5) {
179: [0]=>
180: object(ChildClass)#%d (2) {
181: ["var3":"ChildClass":private]=>
182: NULL
183: ["var2":protected]=>
184: int(5)
185: }
186: ["f"]=>
187: string(5) "first"
188: ["s"]=>
189: string(6) "second"
190: [1]=>
191: int(1)
192: [2]=>
193: float(2.222)
194: }
195: int(7)
196: array(7) {
197: [0]=>
198: object(ChildClass)#%d (2) {
199: ["var3":"ChildClass":private]=>
200: NULL
201: ["var2":protected]=>
202: int(5)
203: }
204: [1]=>
205: string(5) "hello"
206: [2]=>
207: string(5) "world"
208: ["f"]=>
209: string(5) "first"
210: ["s"]=>
211: string(6) "second"
212: [3]=>
213: int(1)
214: [4]=>
215: float(2.222)
216: }
217: -- Iteration 4 --
218: int(5)
219: array(5) {
220: [0]=>
221: object(FinalClass)#%d (1) {
222: ["var4":"FinalClass":private]=>
223: NULL
224: }
225: ["f"]=>
226: string(5) "first"
227: ["s"]=>
228: string(6) "second"
229: [1]=>
230: int(1)
231: [2]=>
232: float(2.222)
233: }
234: int(7)
235: array(7) {
236: [0]=>
237: object(FinalClass)#%d (1) {
238: ["var4":"FinalClass":private]=>
239: NULL
240: }
241: [1]=>
242: string(5) "hello"
243: [2]=>
244: string(5) "world"
245: ["f"]=>
246: string(5) "first"
247: ["s"]=>
248: string(6) "second"
249: [3]=>
250: int(1)
251: [4]=>
252: float(2.222)
253: }
254: -- Iteration 5 --
255: int(5)
256: array(5) {
257: [0]=>
258: object(StaticClass)#%d (0) {
259: }
260: ["f"]=>
261: string(5) "first"
262: ["s"]=>
263: string(6) "second"
264: [1]=>
265: int(1)
266: [2]=>
267: float(2.222)
268: }
269: int(7)
270: array(7) {
271: [0]=>
272: object(StaticClass)#%d (0) {
273: }
274: [1]=>
275: string(5) "hello"
276: [2]=>
277: string(5) "world"
278: ["f"]=>
279: string(5) "first"
280: ["s"]=>
281: string(6) "second"
282: [3]=>
283: int(1)
284: [4]=>
285: float(2.222)
286: }
287: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>