Annotation of embedaddon/php/ext/standard/tests/array/array_fill_object.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test array_fill() function : usage variations - various object values for 'val' argument
3: --FILE--
4: <?php
5: /* Prototype : array array_fill(int $start_key, int $num, mixed $val)
6: * Description: Create an array containing num elements starting with index start_key each initialized to val
7: * Source code: ext/standard/array.c
8: */
9:
10: /*
11: * testing array_fill() by passing various object values for 'val' argument
12: */
13:
14: echo "*** Testing array_fill() : usage variations ***\n";
15:
16: // Initialise function arguments not being substituted
17: $start_key = 0;
18: $num = 2;
19:
20: // class without a member
21: class Test
22: {
23: }
24:
25: //class with public member, static member , constant and consturctor to initialize the public member
26: class Test1
27: {
28: const test1_constant = "test1";
29: public static $test1_static = 0;
30: public $member1;
31: var $var1 = 30;
32: var $var2;
33:
34: function __construct($value1 , $value2)
35: {
36: $this->member1 = $value1;
37: $this->var2 = $value2;
38: }
39: }
40:
41: // child class which inherits parent class test1
42: class Child_test1 extends Test1
43: {
44: public $member2;
45:
46: function __construct($value1 , $value2 , $value3)
47: {
48: parent::__construct($value1 , $value2);
49: $this->member2 = $value3;
50: }
51: }
52:
53: //class with private member, static member, constant and constructor to initialize the private member
54: class Test2
55: {
56: const test2_constant = "test2";
57: public static $test2_static = 0;
58: private $member1;
59: var $var1 = 30;
60: var $var2;
61:
62: function __construct($value1 , $value2)
63: {
64: $this->member1 = $value1;
65: $this->var2 = $value2;
66: }
67: }
68:
69: // child class which inherits parent class test2
70: class Child_test2 extends Test2
71: {
72: private $member1;
73:
74: function __construct($value1 , $value2 , $value3)
75: {
76: parent::__construct($value1 , $value2);
77: $this->member1 = $value3;
78: }
79: }
80:
81: // class with protected member, static member, constant and consturctor to initialize the protected member
82: class Test3
83: {
84: const test3_constant = "test3";
85: public static $test3_static = 0;
86: protected $member1;
87: var $var1 = 30;
88: var $var2;
89:
90: function __construct($value1 , $value2)
91: {
92: $this->member1 = $value1;
93: $this->var2 = $value2;
94: }
95: }
96:
97: // child class which inherits parent class test3
98: class Child_test3 extends Test3
99: {
100: protected $member1;
101:
102: function __construct($value1 , $value2 , $value3)
103: {
104: parent::__construct($value1 , $value2);
105: $this->member1 = $value3;
106: }
107: }
108:
109: // class with public, private, protected members, static, constant members and constructor to initialize all the members
110: class Test4
111: {
112: const test4_constant = "test4";
113: public static $test4_static = 0;
114: public $member1;
115: private $member2;
116: protected $member3;
117:
118: function __construct($value1 , $value2 , $value3)
119: {
120: $this->member1 = $value1;
121: $this->member2 = $value2;
122: $this->member3 = $value3;
123: }
124: }
125:
126: // child class which inherits parent class test4
127: class Child_test4 extends Test4
128: {
129: var $var1;
130:
131: function __construct($value1 , $value2 , $value3 , $value4)
132: {
133: parent::__construct($value1 , $value2 , $value3);
134: $this->var1 = $value4;
135: }
136: }
137:
138: // abstract class with public, private, protected members
139: abstract class AbstractClass
140: {
141: public $member1;
142: private $member2;
143: protected $member3;
144: var $var1 = 30;
145:
146: abstract protected function display();
147: }
148:
149: // implement abstract 'AbstractClass' class
150: class ConcreteClass1 extends AbstractClass
151: {
152: protected function display()
153: {
154: echo "class name is ConcreteClass1 \n";
155: }
156: }
157:
158:
159: // declarationn of the interface 'iTemplate'
160: interface iTemplate
161: {
162: public function display();
163: }
164:
165: // implement the interface 'iTemplate'
166: class Template1 implements iTemplate
167: {
168: public function display()
169: {
170: echo "class name is Template1\n";
171: }
172: }
173:
174: //array of object values for 'val' argument
175: $objects = array(
176:
177: /* 1 */ new Test(),
178: new Test1(100 , 101),
179: new Child_test1(100 , 101 , 102),
180: new Test2(100 , 101),
181: /* 5 */ new Child_test2(100 , 101 , 102),
182: new Test3(100 , 101),
183: new Child_test3(100 , 101 , 102),
184: new Test4( 100 , 101 , 102),
185: new Child_test4(100 , 101 , 102 , 103),
186: new ConcreteClass1(),
187: /* 11 */ new Template1()
188: );
189:
190: // loop through each element of the array for 'val' argument
191: // check the working of array_fill()
192: echo "--- Testing array_fill() with different object values for 'val' argument ---\n";
193: $counter = 1;
194: for($index = 0; $index < count($objects); $index ++)
195: {
196: echo "-- Iteration $counter --\n";
197: $val = $objects[$index];
198:
199: var_dump( array_fill($start_key,$num,$val) );
200:
201: $counter++;
202: }
203:
204: echo "Done";
205: ?>
206: --EXPECTF--
207: *** Testing array_fill() : usage variations ***
208: --- Testing array_fill() with different object values for 'val' argument ---
209: -- Iteration 1 --
210: array(2) {
211: [0]=>
212: object(Test)#%d (0) {
213: }
214: [1]=>
215: object(Test)#%d (0) {
216: }
217: }
218: -- Iteration 2 --
219: array(2) {
220: [0]=>
221: object(Test1)#%d (3) {
222: ["member1"]=>
223: int(100)
224: ["var1"]=>
225: int(30)
226: ["var2"]=>
227: int(101)
228: }
229: [1]=>
230: object(Test1)#%d (3) {
231: ["member1"]=>
232: int(100)
233: ["var1"]=>
234: int(30)
235: ["var2"]=>
236: int(101)
237: }
238: }
239: -- Iteration 3 --
240: array(2) {
241: [0]=>
242: object(Child_test1)#%d (4) {
243: ["member2"]=>
244: int(102)
245: ["member1"]=>
246: int(100)
247: ["var1"]=>
248: int(30)
249: ["var2"]=>
250: int(101)
251: }
252: [1]=>
253: object(Child_test1)#%d (4) {
254: ["member2"]=>
255: int(102)
256: ["member1"]=>
257: int(100)
258: ["var1"]=>
259: int(30)
260: ["var2"]=>
261: int(101)
262: }
263: }
264: -- Iteration 4 --
265: array(2) {
266: [0]=>
267: object(Test2)#%d (3) {
268: ["member1":"Test2":private]=>
269: int(100)
270: ["var1"]=>
271: int(30)
272: ["var2"]=>
273: int(101)
274: }
275: [1]=>
276: object(Test2)#%d (3) {
277: ["member1":"Test2":private]=>
278: int(100)
279: ["var1"]=>
280: int(30)
281: ["var2"]=>
282: int(101)
283: }
284: }
285: -- Iteration 5 --
286: array(2) {
287: [0]=>
288: object(Child_test2)#%d (4) {
289: ["member1":"Child_test2":private]=>
290: int(102)
291: ["member1":"Test2":private]=>
292: int(100)
293: ["var1"]=>
294: int(30)
295: ["var2"]=>
296: int(101)
297: }
298: [1]=>
299: object(Child_test2)#%d (4) {
300: ["member1":"Child_test2":private]=>
301: int(102)
302: ["member1":"Test2":private]=>
303: int(100)
304: ["var1"]=>
305: int(30)
306: ["var2"]=>
307: int(101)
308: }
309: }
310: -- Iteration 6 --
311: array(2) {
312: [0]=>
313: object(Test3)#%d (3) {
314: ["member1":protected]=>
315: int(100)
316: ["var1"]=>
317: int(30)
318: ["var2"]=>
319: int(101)
320: }
321: [1]=>
322: object(Test3)#%d (3) {
323: ["member1":protected]=>
324: int(100)
325: ["var1"]=>
326: int(30)
327: ["var2"]=>
328: int(101)
329: }
330: }
331: -- Iteration 7 --
332: array(2) {
333: [0]=>
334: object(Child_test3)#%d (3) {
335: ["member1":protected]=>
336: int(102)
337: ["var1"]=>
338: int(30)
339: ["var2"]=>
340: int(101)
341: }
342: [1]=>
343: object(Child_test3)#%d (3) {
344: ["member1":protected]=>
345: int(102)
346: ["var1"]=>
347: int(30)
348: ["var2"]=>
349: int(101)
350: }
351: }
352: -- Iteration 8 --
353: array(2) {
354: [0]=>
355: object(Test4)#%d (3) {
356: ["member1"]=>
357: int(100)
358: ["member2":"Test4":private]=>
359: int(101)
360: ["member3":protected]=>
361: int(102)
362: }
363: [1]=>
364: object(Test4)#%d (3) {
365: ["member1"]=>
366: int(100)
367: ["member2":"Test4":private]=>
368: int(101)
369: ["member3":protected]=>
370: int(102)
371: }
372: }
373: -- Iteration 9 --
374: array(2) {
375: [0]=>
376: object(Child_test4)#%d (4) {
377: ["var1"]=>
378: int(103)
379: ["member1"]=>
380: int(100)
381: ["member2":"Test4":private]=>
382: int(101)
383: ["member3":protected]=>
384: int(102)
385: }
386: [1]=>
387: object(Child_test4)#%d (4) {
388: ["var1"]=>
389: int(103)
390: ["member1"]=>
391: int(100)
392: ["member2":"Test4":private]=>
393: int(101)
394: ["member3":protected]=>
395: int(102)
396: }
397: }
398: -- Iteration 10 --
399: array(2) {
400: [0]=>
401: object(ConcreteClass1)#%d (4) {
402: ["member1"]=>
403: NULL
404: ["member2":"AbstractClass":private]=>
405: NULL
406: ["member3":protected]=>
407: NULL
408: ["var1"]=>
409: int(30)
410: }
411: [1]=>
412: object(ConcreteClass1)#%d (4) {
413: ["member1"]=>
414: NULL
415: ["member2":"AbstractClass":private]=>
416: NULL
417: ["member3":protected]=>
418: NULL
419: ["var1"]=>
420: int(30)
421: }
422: }
423: -- Iteration 11 --
424: array(2) {
425: [0]=>
426: object(Template1)#%d (0) {
427: }
428: [1]=>
429: object(Template1)#%d (0) {
430: }
431: }
432: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>