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
17include('compare_function.inc');
18$data_comp_func = 'compare_function';
19
20//get an unset variable
21$unset_var = 10;
22unset ($unset_var);
23
24// define some classes
25class classWithToString
26{
27	public function __toString() {
28		return "Class A object";
29	}
30}
31
32class classWithoutToString
33{
34}
35
36// heredoc string
37$heredoc = <<<EOT
38hello world
39EOT;
40
41// add arrays
42$index_array = array (1, 2, 3);
43$assoc_array = array ('one' => 1, 'two' => 2);
44
45//array of values to iterate over
46$inputs = array(
47
48      // int data
49      'int 0' => 0,
50      'int 1' => 1,
51      'int 12345' => 12345,
52      'int -12345' => -2345,
53
54      // float data
55      'float 10.5' => 10.5,
56      'float -10.5' => -10.5,
57      'float 12.3456789000e10' => 12.3456789000e10,
58      'float -12.3456789000e10' => -12.3456789000e10,
59      'float .5' => .5,
60
61      // null data
62      'uppercase NULL' => NULL,
63      'lowercase null' => null,
64
65      // boolean data
66      'lowercase true' => true,
67      'lowercase false' =>false,
68      'uppercase TRUE' =>TRUE,
69      'uppercase FALSE' =>FALSE,
70
71      // empty data
72      'empty string DQ' => "",
73      'empty string SQ' => '',
74
75      // string data
76      'string DQ' => "string",
77      'string SQ' => 'string',
78      'mixed case string' => "sTrInG",
79      'heredoc' => $heredoc,
80
81      // object data
82      'instance of classWithToString' => new classWithToString(),
83      'instance of classWithoutToString' => new classWithoutToString(),
84
85      // undefined data
86      'undefined var' => @$undefined_var,
87
88      // unset data
89      'unset var' => @$unset_var,
90);
91
92// loop through each element of the array for ...
93
94foreach($inputs as $key =>$value) {
95      echo "\n--$key--\n";
96      var_dump( array_udiff($arr1, $arr2, $value, $data_comp_func) );
97};
98
99?>
100===DONE===
101--EXPECTF--
102*** Testing array_udiff() : usage variation ***
103
104--int 0--
105
106Warning: array_udiff(): Argument #3 is not an array in %sarray_udiff_variation4.php on line %d
107NULL
108
109--int 1--
110
111Warning: array_udiff(): Argument #3 is not an array in %sarray_udiff_variation4.php on line %d
112NULL
113
114--int 12345--
115
116Warning: array_udiff(): Argument #3 is not an array in %sarray_udiff_variation4.php on line %d
117NULL
118
119--int -12345--
120
121Warning: array_udiff(): Argument #3 is not an array in %sarray_udiff_variation4.php on line %d
122NULL
123
124--float 10.5--
125
126Warning: array_udiff(): Argument #3 is not an array in %sarray_udiff_variation4.php on line %d
127NULL
128
129--float -10.5--
130
131Warning: array_udiff(): Argument #3 is not an array in %sarray_udiff_variation4.php on line %d
132NULL
133
134--float 12.3456789000e10--
135
136Warning: array_udiff(): Argument #3 is not an array in %sarray_udiff_variation4.php on line %d
137NULL
138
139--float -12.3456789000e10--
140
141Warning: array_udiff(): Argument #3 is not an array in %sarray_udiff_variation4.php on line %d
142NULL
143
144--float .5--
145
146Warning: array_udiff(): Argument #3 is not an array in %sarray_udiff_variation4.php on line %d
147NULL
148
149--uppercase NULL--
150
151Warning: array_udiff(): Argument #3 is not an array in %sarray_udiff_variation4.php on line %d
152NULL
153
154--lowercase null--
155
156Warning: array_udiff(): Argument #3 is not an array in %sarray_udiff_variation4.php on line %d
157NULL
158
159--lowercase true--
160
161Warning: array_udiff(): Argument #3 is not an array in %sarray_udiff_variation4.php on line %d
162NULL
163
164--lowercase false--
165
166Warning: array_udiff(): Argument #3 is not an array in %sarray_udiff_variation4.php on line %d
167NULL
168
169--uppercase TRUE--
170
171Warning: array_udiff(): Argument #3 is not an array in %sarray_udiff_variation4.php on line %d
172NULL
173
174--uppercase FALSE--
175
176Warning: array_udiff(): Argument #3 is not an array in %sarray_udiff_variation4.php on line %d
177NULL
178
179--empty string DQ--
180
181Warning: array_udiff(): Argument #3 is not an array in %sarray_udiff_variation4.php on line %d
182NULL
183
184--empty string SQ--
185
186Warning: array_udiff(): Argument #3 is not an array in %sarray_udiff_variation4.php on line %d
187NULL
188
189--string DQ--
190
191Warning: array_udiff(): Argument #3 is not an array in %sarray_udiff_variation4.php on line %d
192NULL
193
194--string SQ--
195
196Warning: array_udiff(): Argument #3 is not an array in %sarray_udiff_variation4.php on line %d
197NULL
198
199--mixed case string--
200
201Warning: array_udiff(): Argument #3 is not an array in %sarray_udiff_variation4.php on line %d
202NULL
203
204--heredoc--
205
206Warning: array_udiff(): Argument #3 is not an array in %sarray_udiff_variation4.php on line %d
207NULL
208
209--instance of classWithToString--
210
211Warning: array_udiff(): Argument #3 is not an array in %sarray_udiff_variation4.php on line %d
212NULL
213
214--instance of classWithoutToString--
215
216Warning: array_udiff(): Argument #3 is not an array in %sarray_udiff_variation4.php on line %d
217NULL
218
219--undefined var--
220
221Warning: array_udiff(): Argument #3 is not an array in %sarray_udiff_variation4.php on line %d
222NULL
223
224--unset var--
225
226Warning: array_udiff(): Argument #3 is not an array in %sarray_udiff_variation4.php on line %d
227NULL
228===DONE===
229