Annotation of embedaddon/php/ext/standard/tests/array/array_diff_key_variation3.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test array_diff_key() function : usage variation - Passing unexpected values to third optional argument
3: --FILE--
4: <?php
5: /* Prototype : array array_diff_key(array arr1, array arr2 [, array ...])
6: * Description: Returns the entries of arr1 that have keys which are not present in any of the others arguments.
7: * Source code: ext/standard/array.c
8: */
9:
10: echo "*** Testing array_diff_key() : usage variation ***\n";
11:
12: // Initialise function arguments not being substituted (if any)
13: $array1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);
14: $array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8);
15:
16: //get an unset variable
17: $unset_var = 10;
18: unset ($unset_var);
19:
20: //resource variable
21: $fp = fopen(__FILE__, "r");
22:
23: // define some classes
24: class classWithToString
25: {
26: public function __toString() {
27: return "Class A object";
28: }
29: }
30:
31: class classWithoutToString
32: {
33: }
34:
35: // heredoc string
36: $heredoc = <<<EOT
37: hello world
38: EOT;
39:
40: //array of values to iterate over
41: $inputs = array(
42:
43: // int data
44: 'int 0' => 0,
45: 'int 1' => 1,
46: 'int 12345' => 12345,
47: 'int -12345' => -12345,
48:
49: // float data
50: 'float 10.5' => 10.5,
51: 'float -10.5' => -10.5,
52: 'float 12.3456789000e10' => 12.3456789000e10,
53: 'float -12.3456789000e10' => -12.3456789000e10,
54: 'float .5' => .5,
55:
56: // null data
57: 'uppercase NULL' => NULL,
58: 'lowercase null' => null,
59:
60: // boolean data
61: 'lowercase true' => true,
62: 'lowercase false' =>false,
63: 'uppercase TRUE' =>TRUE,
64: 'uppercase FALSE' =>FALSE,
65:
66: // empty data
67: 'empty string DQ' => "",
68: 'empty string SQ' => '',
69:
70: // string data
71: 'string DQ' => "string",
72: 'string SQ' => 'string',
73: 'mixed case string' => "sTrInG",
74: 'heredoc' => $heredoc,
75:
76: // object data
77: 'instance of classWithToString' => new classWithToString(),
78: 'instance of classWithoutToString' => new classWithoutToString(),
79:
80: // undefined data
81: 'undefined var' => @$undefined_var,
82:
83: // unset data
84: 'unset var' => @$unset_var,
85:
86: // resource data
87: 'resource' => $fp,
88: );
89:
90: // loop through each element of the array for arr1
91:
92: foreach($inputs as $key =>$value) {
93: echo "\n--$key--\n";
94: var_dump( array_diff_key($array1, $array2, $value) );
95: };
96:
97: fclose($fp);
98: ?>
99: ===DONE===
100: --EXPECTF--
101: *** Testing array_diff_key() : usage variation ***
102:
103: --int 0--
104:
105: Warning: array_diff_key(): Argument #3 is not an array in %s on line %d
106: NULL
107:
108: --int 1--
109:
110: Warning: array_diff_key(): Argument #3 is not an array in %s on line %d
111: NULL
112:
113: --int 12345--
114:
115: Warning: array_diff_key(): Argument #3 is not an array in %s on line %d
116: NULL
117:
118: --int -12345--
119:
120: Warning: array_diff_key(): Argument #3 is not an array in %s on line %d
121: NULL
122:
123: --float 10.5--
124:
125: Warning: array_diff_key(): Argument #3 is not an array in %s on line %d
126: NULL
127:
128: --float -10.5--
129:
130: Warning: array_diff_key(): Argument #3 is not an array in %s on line %d
131: NULL
132:
133: --float 12.3456789000e10--
134:
135: Warning: array_diff_key(): Argument #3 is not an array in %s on line %d
136: NULL
137:
138: --float -12.3456789000e10--
139:
140: Warning: array_diff_key(): Argument #3 is not an array in %s on line %d
141: NULL
142:
143: --float .5--
144:
145: Warning: array_diff_key(): Argument #3 is not an array in %s on line %d
146: NULL
147:
148: --uppercase NULL--
149:
150: Warning: array_diff_key(): Argument #3 is not an array in %s on line %d
151: NULL
152:
153: --lowercase null--
154:
155: Warning: array_diff_key(): Argument #3 is not an array in %s on line %d
156: NULL
157:
158: --lowercase true--
159:
160: Warning: array_diff_key(): Argument #3 is not an array in %s on line %d
161: NULL
162:
163: --lowercase false--
164:
165: Warning: array_diff_key(): Argument #3 is not an array in %s on line %d
166: NULL
167:
168: --uppercase TRUE--
169:
170: Warning: array_diff_key(): Argument #3 is not an array in %s on line %d
171: NULL
172:
173: --uppercase FALSE--
174:
175: Warning: array_diff_key(): Argument #3 is not an array in %s on line %d
176: NULL
177:
178: --empty string DQ--
179:
180: Warning: array_diff_key(): Argument #3 is not an array in %s on line %d
181: NULL
182:
183: --empty string SQ--
184:
185: Warning: array_diff_key(): Argument #3 is not an array in %s on line %d
186: NULL
187:
188: --string DQ--
189:
190: Warning: array_diff_key(): Argument #3 is not an array in %s on line %d
191: NULL
192:
193: --string SQ--
194:
195: Warning: array_diff_key(): Argument #3 is not an array in %s on line %d
196: NULL
197:
198: --mixed case string--
199:
200: Warning: array_diff_key(): Argument #3 is not an array in %s on line %d
201: NULL
202:
203: --heredoc--
204:
205: Warning: array_diff_key(): Argument #3 is not an array in %s on line %d
206: NULL
207:
208: --instance of classWithToString--
209:
210: Warning: array_diff_key(): Argument #3 is not an array in %s on line %d
211: NULL
212:
213: --instance of classWithoutToString--
214:
215: Warning: array_diff_key(): Argument #3 is not an array in %s on line %d
216: NULL
217:
218: --undefined var--
219:
220: Warning: array_diff_key(): Argument #3 is not an array in %s on line %d
221: NULL
222:
223: --unset var--
224:
225: Warning: array_diff_key(): Argument #3 is not an array in %s on line %d
226: NULL
227:
228: --resource--
229:
230: Warning: array_diff_key(): Argument #3 is not an array in %s on line %d
231: NULL
232: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>