Annotation of embedaddon/php/ext/standard/tests/array/array_push_variation4.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test array_push() function : usage variations - referenced variables
3: --INI--
4: allow_call_time_pass_reference=on
5: --FILE--
6: <?php
7: /* Prototype : int array_push(array $stack, mixed $var [, mixed $...])
8: * Description: Pushes elements onto the end of the array
9: * Source code: ext/standard/array.c
10: */
11:
12: /*
13: * Test array_push when:
14: * 1. passed referenced variables as $var arguments
15: * 2. $var argument is a reference to $stack argument
16: */
17:
18: echo "*** Testing array_push() : usage variations ***\n";
19:
20: $var1 = 'a';
21: $var2 = 'b';
22: $var3 = 'c';
23: $var4 = 'x';
24: $var5 = 'y';
25: $var6 = 'z';
26:
27: $array = array(1, 2, 3);
28:
29: echo "\n-- Pass array_push referenced varialbes as \$var arguments --\n";
30: var_dump(array_push($array, &$var1, &$var2, &$var3, &$var4, &$var5, &$var6));
31: var_dump($array);
32:
33: echo "\n-- Pass \$var argument which is a reference to \$stack argument --\n";
34: var_dump(array_push($array, &$array));
35: var_dump($array);
36:
37: echo "Done";
38: ?>
39: --EXPECTF--
40: *** Testing array_push() : usage variations ***
41:
42: -- Pass array_push referenced varialbes as $var arguments --
43: int(9)
44: array(9) {
45: [0]=>
46: int(1)
47: [1]=>
48: int(2)
49: [2]=>
50: int(3)
51: [3]=>
52: &string(1) "a"
53: [4]=>
54: &string(1) "b"
55: [5]=>
56: &string(1) "c"
57: [6]=>
58: &string(1) "x"
59: [7]=>
60: &string(1) "y"
61: [8]=>
62: &string(1) "z"
63: }
64:
65: -- Pass $var argument which is a reference to $stack argument --
66: int(10)
67: array(10) {
68: [0]=>
69: int(1)
70: [1]=>
71: int(2)
72: [2]=>
73: int(3)
74: [3]=>
75: &string(1) "a"
76: [4]=>
77: &string(1) "b"
78: [5]=>
79: &string(1) "c"
80: [6]=>
81: &string(1) "x"
82: [7]=>
83: &string(1) "y"
84: [8]=>
85: &string(1) "z"
86: [9]=>
87: &array(10) {
88: [0]=>
89: int(1)
90: [1]=>
91: int(2)
92: [2]=>
93: int(3)
94: [3]=>
95: &string(1) "a"
96: [4]=>
97: &string(1) "b"
98: [5]=>
99: &string(1) "c"
100: [6]=>
101: &string(1) "x"
102: [7]=>
103: &string(1) "y"
104: [8]=>
105: &string(1) "z"
106: [9]=>
107: *RECURSION*
108: }
109: }
110: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>