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