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