summaryrefslogtreecommitdiff
path: root/ext/standard/tests/array/array_filter_variation8.phpt
blob: 4440b3324ec99e93c9ed6a57da116f9a3878d485 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
--TEST--
Test array_filter() function : usage variations - Callback function with different return values 
--FILE--
<?php
/* Prototype  : array array_filter(array $input [, callback $callback])
 * Description: Filters elements from the array via the callback. 
 * Source code: ext/standard/array.c
*/

/*
* callback functions are expected to return bool value for array_filter()
* here testing callback functions for return values other than bool
*/

echo "*** Testing array_filter() : usage variations - callback function with different return values***\n";

$input = array(0, 1, -1, 10, 100, 1000, 'Hello', null, true);

// callback functions
// int as return value
function callback1($input)
{
  return 5;
}
echo "callback function with int return value\n";
var_dump( array_filter($input, 'callback1') );

// float as return value
function callback2($input)
{
  return 3.4;
}
echo "callback function with float return value\n";
var_dump( array_filter($input, 'callback2') );

// string as return value
function callback3($input)
{
  return 'value';
}
echo "callback function with string return value\n";
var_dump( array_filter($input, 'callback3') );

// null as return value
function callback4($input)
{
  return null;
}
echo "callback function with null return value\n";
var_dump( array_filter($input, 'callback4') );

// array as return value
function callback5($input)
{
  return array(8);
}
echo "callback function with array as return value\n";
var_dump( array_filter($input, 'callback5') );

echo "Done"
?>
--EXPECTF--
*** Testing array_filter() : usage variations - callback function with different return values***
callback function with int return value
array(9) {
  [0]=>
  int(0)
  [1]=>
  int(1)
  [2]=>
  int(-1)
  [3]=>
  int(10)
  [4]=>
  int(100)
  [5]=>
  int(1000)
  [6]=>
  string(5) "Hello"
  [7]=>
  NULL
  [8]=>
  bool(true)
}
callback function with float return value
array(9) {
  [0]=>
  int(0)
  [1]=>
  int(1)
  [2]=>
  int(-1)
  [3]=>
  int(10)
  [4]=>
  int(100)
  [5]=>
  int(1000)
  [6]=>
  string(5) "Hello"
  [7]=>
  NULL
  [8]=>
  bool(true)
}
callback function with string return value
array(9) {
  [0]=>
  int(0)
  [1]=>
  int(1)
  [2]=>
  int(-1)
  [3]=>
  int(10)
  [4]=>
  int(100)
  [5]=>
  int(1000)
  [6]=>
  string(5) "Hello"
  [7]=>
  NULL
  [8]=>
  bool(true)
}
callback function with null return value
array(0) {
}
callback function with array as return value
array(9) {
  [0]=>
  int(0)
  [1]=>
  int(1)
  [2]=>
  int(-1)
  [3]=>
  int(10)
  [4]=>
  int(100)
  [5]=>
  int(1000)
  [6]=>
  string(5) "Hello"
  [7]=>
  NULL
  [8]=>
  bool(true)
}
Done