1--TEST--
2Test array_filter() function : usage variations - Unexpected values for 'input' argument
3--FILE--
4<?php
5/* Prototype  : array array_filter(array $input [, callback $callback])
6 * Description: Filters elements from the array via the callback.
7 * Source code: ext/standard/array.c
8*/
9
10/* Passing different scalar and nonscalar values for 'input' argument
11*/
12echo "*** Testing array_filter() : usage variations - unexpected values for 'input'***\n";
13
14/* Callback function
15 * Prototype : bool always_true(array $input)
16 * Parameters : array for which each elements needs to be used in function
17 * Return value : Returns true for each element
18 * Discription : function applied to each element of the passed array and returns true
19 */
20function always_true($input)
21{
22  return true;
23}
24
25
26// get an unset variable
27$unset_var = 10;
28unset ($unset_var);
29
30// class definition for object variable
31class MyClass
32{
33  public function __toString()
34  {
35    return "object";
36  }
37}
38
39// resource variable
40$fp = fopen(__FILE__, 'r');
41
42// different values for 'input' argument
43$input_values = array(
44
45        // int data
46/*1*/   0,
47        1,
48        12345,
49        -2345,
50
51        // float data
52/*5*/   10.5,
53        -10.5,
54        12.3456789000e10,
55        12.3456789000E-10,
56        .5,
57
58
59        // null data
60/*10*/  NULL,
61        null,
62
63        // boolean data
64/*12*/  true,
65        false,
66        TRUE,
67        FALSE,
68
69        // empty data
70/*16*/  "",
71        '',
72
73        // string data
74/*18*/  "string",
75        'string',
76
77        // object data
78/*20*/  new MyClass(),
79
80        // resource data
81        $fp,
82
83        // undefined data
84        @$undefined_var,
85
86        // unset data
87/*23*/  @$unset_var,
88);
89
90// loop through each element of the array for input
91for($count = 0; $count < count($input_values); $count++) {
92  echo "-- Iteration ".($count + 1)." --\n";
93  var_dump( array_filter($input_values[$count],"always_true") );
94};
95
96// closing resource
97fclose($fp);
98
99echo "Done"
100?>
101--EXPECTF--
102*** Testing array_filter() : usage variations - unexpected values for 'input'***
103-- Iteration 1 --
104
105Warning: array_filter() expects parameter 1 to be array, integer given in %s on line %d
106NULL
107-- Iteration 2 --
108
109Warning: array_filter() expects parameter 1 to be array, integer given in %s on line %d
110NULL
111-- Iteration 3 --
112
113Warning: array_filter() expects parameter 1 to be array, integer given in %s on line %d
114NULL
115-- Iteration 4 --
116
117Warning: array_filter() expects parameter 1 to be array, integer given in %s on line %d
118NULL
119-- Iteration 5 --
120
121Warning: array_filter() expects parameter 1 to be array, double given in %s on line %d
122NULL
123-- Iteration 6 --
124
125Warning: array_filter() expects parameter 1 to be array, double given in %s on line %d
126NULL
127-- Iteration 7 --
128
129Warning: array_filter() expects parameter 1 to be array, double given in %s on line %d
130NULL
131-- Iteration 8 --
132
133Warning: array_filter() expects parameter 1 to be array, double given in %s on line %d
134NULL
135-- Iteration 9 --
136
137Warning: array_filter() expects parameter 1 to be array, double given in %s on line %d
138NULL
139-- Iteration 10 --
140
141Warning: array_filter() expects parameter 1 to be array, null given in %s on line %d
142NULL
143-- Iteration 11 --
144
145Warning: array_filter() expects parameter 1 to be array, null given in %s on line %d
146NULL
147-- Iteration 12 --
148
149Warning: array_filter() expects parameter 1 to be array, boolean given in %s on line %d
150NULL
151-- Iteration 13 --
152
153Warning: array_filter() expects parameter 1 to be array, boolean given in %s on line %d
154NULL
155-- Iteration 14 --
156
157Warning: array_filter() expects parameter 1 to be array, boolean given in %s on line %d
158NULL
159-- Iteration 15 --
160
161Warning: array_filter() expects parameter 1 to be array, boolean given in %s on line %d
162NULL
163-- Iteration 16 --
164
165Warning: array_filter() expects parameter 1 to be array, string given in %s on line %d
166NULL
167-- Iteration 17 --
168
169Warning: array_filter() expects parameter 1 to be array, string given in %s on line %d
170NULL
171-- Iteration 18 --
172
173Warning: array_filter() expects parameter 1 to be array, string given in %s on line %d
174NULL
175-- Iteration 19 --
176
177Warning: array_filter() expects parameter 1 to be array, string given in %s on line %d
178NULL
179-- Iteration 20 --
180
181Warning: array_filter() expects parameter 1 to be array, object given in %s on line %d
182NULL
183-- Iteration 21 --
184
185Warning: array_filter() expects parameter 1 to be array, resource given in %s on line %d
186NULL
187-- Iteration 22 --
188
189Warning: array_filter() expects parameter 1 to be array, null given in %s on line %d
190NULL
191-- Iteration 23 --
192
193Warning: array_filter() expects parameter 1 to be array, null given in %s on line %d
194NULL
195Done
196