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