1--TEST--
2Test array_intersect() function : usage variations - unexpected values for 'arr2' argument
3--FILE--
4<?php
5/* Prototype  : array array_intersect(array $arr1, array $arr2 [, array $...])
6 * Description: Returns the entries of arr1 that have values which are present in all the other arguments
7 * Source code: ext/standard/array.c
8*/
9
10/*
11* Testing array_intersect() function by passing values to $arr2 argument other than arrays
12* and see that function emits proper warning messages wherever expected.
13* The $arr1 argument is a fixed array.
14*/
15
16echo "*** Testing array_intersect() : Passing non-array values to \$arr2 argument ***\n";
17
18// array to be passsed to $arr1 as default argument
19$arr1 = array(1, 2);
20
21// arrays to be passed to optional argument
22$arr3 = array(1, 2, "one" => 1, "two" => 2);
23
24// get an unset variable
25$unset_var = 10;
26unset ($unset_var);
27
28// get a class
29class classA
30{
31  public function __toString() {
32    return "Class A object";
33  }
34}
35
36// heredoc string
37$heredoc = <<<EOT
38hello world
39EOT;
40
41// get a resource variable
42$fp = fopen(__FILE__, "r");
43
44// unexpected values to be passed to $arr2 argument
45$arrays = array(
46
47       // int data
48/*1*/  0,
49       1,
50       12345,
51       -2345,
52
53       // float data
54/*5*/  10.5,
55       -10.5,
56       12.3456789000e10,
57       12.3456789000E-10,
58       .5,
59
60       // null data
61/*10*/ NULL,
62       null,
63
64       // boolean data
65/*12*/ true,
66       false,
67       TRUE,
68       FALSE,
69
70       // empty data
71/*16*/ "",
72       '',
73
74       // string data
75/*18*/ "string",
76       'string',
77       $heredoc,
78
79       // object data
80/*21*/ new classA(),
81
82       // undefined data
83/*22*/ @$undefined_var,
84
85       // unset data
86/*23*/ @$unset_var,
87
88       // resource variable
89/*24*/ $fp
90);
91
92// loop through each sub-array within $arrrays to check the behavior of array_intersect()
93$iterator = 1;
94foreach($arrays as $unexpected_value) {
95  echo "\n-- Iterator $iterator --";
96
97  // Calling array_intersect() with default arguments
98  var_dump( array_intersect($arr1,$unexpected_value) );
99
100  // Calling array_intersect() with more arguments
101  var_dump( array_intersect($arr1, $unexpected_value, $arr3) );
102
103  $iterator++;
104}
105
106// close the file resource used
107fclose($fp);
108
109echo "Done";
110?>
111--EXPECTF--
112*** Testing array_intersect() : Passing non-array values to $arr2 argument ***
113
114-- Iterator 1 --
115Warning: array_intersect(): Expected parameter 2 to be an array, int given in %s on line %d
116NULL
117
118Warning: array_intersect(): Expected parameter 2 to be an array, int given in %s on line %d
119NULL
120
121-- Iterator 2 --
122Warning: array_intersect(): Expected parameter 2 to be an array, int given in %s on line %d
123NULL
124
125Warning: array_intersect(): Expected parameter 2 to be an array, int given in %s on line %d
126NULL
127
128-- Iterator 3 --
129Warning: array_intersect(): Expected parameter 2 to be an array, int given in %s on line %d
130NULL
131
132Warning: array_intersect(): Expected parameter 2 to be an array, int given in %s on line %d
133NULL
134
135-- Iterator 4 --
136Warning: array_intersect(): Expected parameter 2 to be an array, int given in %s on line %d
137NULL
138
139Warning: array_intersect(): Expected parameter 2 to be an array, int given in %s on line %d
140NULL
141
142-- Iterator 5 --
143Warning: array_intersect(): Expected parameter 2 to be an array, float given in %s on line %d
144NULL
145
146Warning: array_intersect(): Expected parameter 2 to be an array, float given in %s on line %d
147NULL
148
149-- Iterator 6 --
150Warning: array_intersect(): Expected parameter 2 to be an array, float given in %s on line %d
151NULL
152
153Warning: array_intersect(): Expected parameter 2 to be an array, float given in %s on line %d
154NULL
155
156-- Iterator 7 --
157Warning: array_intersect(): Expected parameter 2 to be an array, float given in %s on line %d
158NULL
159
160Warning: array_intersect(): Expected parameter 2 to be an array, float given in %s on line %d
161NULL
162
163-- Iterator 8 --
164Warning: array_intersect(): Expected parameter 2 to be an array, float given in %s on line %d
165NULL
166
167Warning: array_intersect(): Expected parameter 2 to be an array, float given in %s on line %d
168NULL
169
170-- Iterator 9 --
171Warning: array_intersect(): Expected parameter 2 to be an array, float given in %s on line %d
172NULL
173
174Warning: array_intersect(): Expected parameter 2 to be an array, float given in %s on line %d
175NULL
176
177-- Iterator 10 --
178Warning: array_intersect(): Expected parameter 2 to be an array, null given in %s on line %d
179NULL
180
181Warning: array_intersect(): Expected parameter 2 to be an array, null given in %s on line %d
182NULL
183
184-- Iterator 11 --
185Warning: array_intersect(): Expected parameter 2 to be an array, null given in %s on line %d
186NULL
187
188Warning: array_intersect(): Expected parameter 2 to be an array, null given in %s on line %d
189NULL
190
191-- Iterator 12 --
192Warning: array_intersect(): Expected parameter 2 to be an array, bool given in %s on line %d
193NULL
194
195Warning: array_intersect(): Expected parameter 2 to be an array, bool given in %s on line %d
196NULL
197
198-- Iterator 13 --
199Warning: array_intersect(): Expected parameter 2 to be an array, bool given in %s on line %d
200NULL
201
202Warning: array_intersect(): Expected parameter 2 to be an array, bool given in %s on line %d
203NULL
204
205-- Iterator 14 --
206Warning: array_intersect(): Expected parameter 2 to be an array, bool given in %s on line %d
207NULL
208
209Warning: array_intersect(): Expected parameter 2 to be an array, bool given in %s on line %d
210NULL
211
212-- Iterator 15 --
213Warning: array_intersect(): Expected parameter 2 to be an array, bool given in %s on line %d
214NULL
215
216Warning: array_intersect(): Expected parameter 2 to be an array, bool given in %s on line %d
217NULL
218
219-- Iterator 16 --
220Warning: array_intersect(): Expected parameter 2 to be an array, string given in %s on line %d
221NULL
222
223Warning: array_intersect(): Expected parameter 2 to be an array, string given in %s on line %d
224NULL
225
226-- Iterator 17 --
227Warning: array_intersect(): Expected parameter 2 to be an array, string given in %s on line %d
228NULL
229
230Warning: array_intersect(): Expected parameter 2 to be an array, string given in %s on line %d
231NULL
232
233-- Iterator 18 --
234Warning: array_intersect(): Expected parameter 2 to be an array, string given in %s on line %d
235NULL
236
237Warning: array_intersect(): Expected parameter 2 to be an array, string given in %s on line %d
238NULL
239
240-- Iterator 19 --
241Warning: array_intersect(): Expected parameter 2 to be an array, string given in %s on line %d
242NULL
243
244Warning: array_intersect(): Expected parameter 2 to be an array, string given in %s on line %d
245NULL
246
247-- Iterator 20 --
248Warning: array_intersect(): Expected parameter 2 to be an array, string given in %s on line %d
249NULL
250
251Warning: array_intersect(): Expected parameter 2 to be an array, string given in %s on line %d
252NULL
253
254-- Iterator 21 --
255Warning: array_intersect(): Expected parameter 2 to be an array, object given in %s on line %d
256NULL
257
258Warning: array_intersect(): Expected parameter 2 to be an array, object given in %s on line %d
259NULL
260
261-- Iterator 22 --
262Warning: array_intersect(): Expected parameter 2 to be an array, null given in %s on line %d
263NULL
264
265Warning: array_intersect(): Expected parameter 2 to be an array, null given in %s on line %d
266NULL
267
268-- Iterator 23 --
269Warning: array_intersect(): Expected parameter 2 to be an array, null given in %s on line %d
270NULL
271
272Warning: array_intersect(): Expected parameter 2 to be an array, null given in %s on line %d
273NULL
274
275-- Iterator 24 --
276Warning: array_intersect(): Expected parameter 2 to be an array, resource given in %s on line %d
277NULL
278
279Warning: array_intersect(): Expected parameter 2 to be an array, resource given in %s on line %d
280NULL
281Done
282