1--TEST--
2Test array_map() function : usage variations - callback function with different return types
3--FILE--
4<?php
5/* Prototype  : array array_map  ( callback $callback  , array $arr1  [, array $...  ] )
6 * Description: Applies the callback to the elements of the given arrays
7 * Source code: ext/standard/array.c
8 */
9
10/*
11 * Test array_map() by passing different callback function returning:
12 *   int, string, bool, null values
13 */
14
15echo "*** Testing array_map() : callback with diff return value ***\n";
16
17$array1 = array(1, 2, 3);
18$array2 = array(3, 4, 5);
19
20echo "-- with integer return value --\n";
21function callback_int($a, $b)
22{
23  return $a + $b;
24}
25var_dump( array_map('callback_int', $array1, $array2));
26
27echo "-- with string return value --\n";
28function callback_string($a, $b)
29{
30  return "$a"."$b";
31}
32var_dump( array_map('callback_string', $array1, $array2));
33
34echo "-- with bool return value --\n";
35function callback_bool($a, $b)
36{
37  return TRUE;
38}
39var_dump( array_map('callback_bool', $array1, $array2));
40
41echo "-- with null return value --\n";
42function callback_null($array1)
43{
44  return NULL;
45}
46var_dump( array_map('callback_null', $array1));
47
48echo "-- with no return value --\n";
49function callback_without_ret($arr1)
50{
51  echo "callback_without_ret called\n";
52}
53var_dump( array_map('callback_without_ret', $array1));
54
55echo "Done";
56?>
57--EXPECTF--
58*** Testing array_map() : callback with diff return value ***
59-- with integer return value --
60array(3) {
61  [0]=>
62  int(4)
63  [1]=>
64  int(6)
65  [2]=>
66  int(8)
67}
68-- with string return value --
69array(3) {
70  [0]=>
71  string(2) "13"
72  [1]=>
73  string(2) "24"
74  [2]=>
75  string(2) "35"
76}
77-- with bool return value --
78array(3) {
79  [0]=>
80  bool(true)
81  [1]=>
82  bool(true)
83  [2]=>
84  bool(true)
85}
86-- with null return value --
87array(3) {
88  [0]=>
89  NULL
90  [1]=>
91  NULL
92  [2]=>
93  NULL
94}
95-- with no return value --
96callback_without_ret called
97callback_without_ret called
98callback_without_ret called
99array(3) {
100  [0]=>
101  NULL
102  [1]=>
103  NULL
104  [2]=>
105  NULL
106}
107Done
108