Annotation of embedaddon/php/ext/standard/tests/array/array_filter_variation8.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test array_filter() function : usage variations - Callback function with different return values
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: /*
11: * callback functions are expected to return bool value for array_filter()
12: * here testing callback functions for return values other than bool
13: */
14:
15: echo "*** Testing array_filter() : usage variations - callback function with different return values***\n";
16:
17: $input = array(0, 1, -1, 10, 100, 1000, 'Hello', null, true);
18:
19: // callback functions
20: // int as return value
21: function callback1($input)
22: {
23: return 5;
24: }
25: echo "callback function with int return value\n";
26: var_dump( array_filter($input, 'callback1') );
27:
28: // float as return value
29: function callback2($input)
30: {
31: return 3.4;
32: }
33: echo "callback function with float return value\n";
34: var_dump( array_filter($input, 'callback2') );
35:
36: // string as return value
37: function callback3($input)
38: {
39: return 'value';
40: }
41: echo "callback function with string return value\n";
42: var_dump( array_filter($input, 'callback3') );
43:
44: // null as return value
45: function callback4($input)
46: {
47: return null;
48: }
49: echo "callback function with null return value\n";
50: var_dump( array_filter($input, 'callback4') );
51:
52: // array as return value
53: function callback5($input)
54: {
55: return array(8);
56: }
57: echo "callback function with array as return value\n";
58: var_dump( array_filter($input, 'callback5') );
59:
60: echo "Done"
61: ?>
62: --EXPECTF--
63: *** Testing array_filter() : usage variations - callback function with different return values***
64: callback function with int return value
65: array(9) {
66: [0]=>
67: int(0)
68: [1]=>
69: int(1)
70: [2]=>
71: int(-1)
72: [3]=>
73: int(10)
74: [4]=>
75: int(100)
76: [5]=>
77: int(1000)
78: [6]=>
79: string(5) "Hello"
80: [7]=>
81: NULL
82: [8]=>
83: bool(true)
84: }
85: callback function with float return value
86: array(9) {
87: [0]=>
88: int(0)
89: [1]=>
90: int(1)
91: [2]=>
92: int(-1)
93: [3]=>
94: int(10)
95: [4]=>
96: int(100)
97: [5]=>
98: int(1000)
99: [6]=>
100: string(5) "Hello"
101: [7]=>
102: NULL
103: [8]=>
104: bool(true)
105: }
106: callback function with string return value
107: array(9) {
108: [0]=>
109: int(0)
110: [1]=>
111: int(1)
112: [2]=>
113: int(-1)
114: [3]=>
115: int(10)
116: [4]=>
117: int(100)
118: [5]=>
119: int(1000)
120: [6]=>
121: string(5) "Hello"
122: [7]=>
123: NULL
124: [8]=>
125: bool(true)
126: }
127: callback function with null return value
128: array(0) {
129: }
130: callback function with array as return value
131: array(9) {
132: [0]=>
133: int(0)
134: [1]=>
135: int(1)
136: [2]=>
137: int(-1)
138: [3]=>
139: int(10)
140: [4]=>
141: int(100)
142: [5]=>
143: int(1000)
144: [6]=>
145: string(5) "Hello"
146: [7]=>
147: NULL
148: [8]=>
149: bool(true)
150: }
151: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>