1--TEST-- 2Test array_filter() function : usage variations - 'input' argument with different false entries 3--FILE-- 4<?php 5/* 6* With default callback function argument, array_filter() removes elements which are interpreted as false 7* Here Testing all the false array element possibilities 8*/ 9 10function always_true($input) 11{ 12 return true; 13} 14 15// callback function always_false 16function always_false($input) 17{ 18 return false; 19} 20 21echo "*** Testing array_filter() : usage variations - different false elements in 'input' ***\n"; 22 23// unset variable 24$unset_var = 10; 25unset($unset_var); 26 27// empty heredoc string 28$empty_heredoc =<<<EOT 29EOT; 30 31// input array with different false elements 32$input = array( 33 false, 34 False, 35 '', 36 "", 37 0, 38 0.0, 39 null, 40 NULL, 41 "0", 42 '0', 43 array(), 44 !1, 45 1==2, 46 $empty_heredoc, 47 @$unset_var, 48 @$undefined_var, 49); 50 51// With default callback function 52var_dump( array_filter($input) ); 53 54// With callback function which returns always true 55var_dump( array_filter($input, 'always_true') ); 56 57// With callback function which returns always false 58var_dump( array_filter($input, 'always_false') ); 59 60echo "Done" 61?> 62--EXPECT-- 63*** Testing array_filter() : usage variations - different false elements in 'input' *** 64array(0) { 65} 66array(16) { 67 [0]=> 68 bool(false) 69 [1]=> 70 bool(false) 71 [2]=> 72 string(0) "" 73 [3]=> 74 string(0) "" 75 [4]=> 76 int(0) 77 [5]=> 78 float(0) 79 [6]=> 80 NULL 81 [7]=> 82 NULL 83 [8]=> 84 string(1) "0" 85 [9]=> 86 string(1) "0" 87 [10]=> 88 array(0) { 89 } 90 [11]=> 91 bool(false) 92 [12]=> 93 bool(false) 94 [13]=> 95 string(0) "" 96 [14]=> 97 NULL 98 [15]=> 99 NULL 100} 101array(0) { 102} 103Done 104