blob: 4df1e9bf7f28dc95830739243814e47fc5abe6e0 (
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
|
--TEST--
Test array_walk() function : usage variations - different callback functions
--FILE--
<?php
/* Prototype : bool array_walk(array $input, string $funcname [, mixed $userdata])
* Description: Apply a user function to every member of an array
* Source code: ext/standard/array.c
*/
/*
* Passing different types of callback functions to array_walk()
* without parameters
* with less and more parameters
*/
echo "*** Testing array_walk() : callback function variation ***\n";
$input = array('Apple', 'Banana', 'Mango', 'Orange');
echo "-- callback function with both parameters --\n";
function callback_two_parameter($value, $key)
{
// dump the arguments to check that they are passed
// with proper type
var_dump($key); // key
var_dump($value); // value
echo "\n"; // new line to separate the output between each element
}
var_dump( array_walk($input, 'callback_two_parameter'));
echo "-- callback function with only one parameter --\n";
function callback_one_parameter($value)
{
// dump the arguments to check that they are passed
// with proper type
var_dump($value); // value
echo "\n"; // new line to separate the output between each element
}
var_dump( array_walk($input, 'callback_one_parameter'));
echo "-- callback function without parameters --\n";
function callback_no_parameter()
{
echo "callback3() called\n";
}
var_dump( array_walk($input, 'callback_no_parameter'));
echo "-- passing one more parameter to function with two parameters --\n";
var_dump( array_walk($input, 'callback_two_parameter', 10));
echo "Done"
?>
--EXPECTF--
*** Testing array_walk() : callback function variation ***
-- callback function with both parameters --
int(0)
string(5) "Apple"
int(1)
string(6) "Banana"
int(2)
string(5) "Mango"
int(3)
string(6) "Orange"
bool(true)
-- callback function with only one parameter --
string(5) "Apple"
string(6) "Banana"
string(5) "Mango"
string(6) "Orange"
bool(true)
-- callback function without parameters --
callback3() called
callback3() called
callback3() called
callback3() called
bool(true)
-- passing one more parameter to function with two parameters --
int(0)
string(5) "Apple"
int(1)
string(6) "Banana"
int(2)
string(5) "Mango"
int(3)
string(6) "Orange"
bool(true)
Done
--UEXPECTF--
*** Testing array_walk() : callback function variation ***
-- callback function with both parameters --
int(0)
unicode(5) "Apple"
int(1)
unicode(6) "Banana"
int(2)
unicode(5) "Mango"
int(3)
unicode(6) "Orange"
bool(true)
-- callback function with only one parameter --
unicode(5) "Apple"
unicode(6) "Banana"
unicode(5) "Mango"
unicode(6) "Orange"
bool(true)
-- callback function without parameters --
callback3() called
callback3() called
callback3() called
callback3() called
bool(true)
-- passing one more parameter to function with two parameters --
int(0)
unicode(5) "Apple"
int(1)
unicode(6) "Banana"
int(2)
unicode(5) "Mango"
int(3)
unicode(6) "Orange"
bool(true)
Done
|