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