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