--TEST-- Test array_map() function --FILE-- "01", "Feb"=>"02", "March"=>"03"), array("31"=>"Jan", "28"=>"Feb", "031"=>"March") ) ); /* using key as "string" where no.of arguments passed to array_map() is 2 */ var_dump( array_map( create_function('$n', 'return $n*$n;'), array("key1"=>1, "key2"=>2, "key3"=>3) ) ); echo "\n*** Testing possible variations ***\n"; /* anonymous callback function */ var_dump( array_map( create_function('$a,$b', 'return $a+$b;'), array(1,2,3), array(5,6,7,8,9) ) ); /* anonymous callback function with reference */ var_dump( array_map( create_function('&$a, $b', 'return array($a,$b);'), array("Hello","Good"), array("World","Day") ) ); /* callback function with reference */ $a = array(1,2,3); function square(&$var) { return( $var * $var ); } print_r( array_map('square', $a) ); /* array_map in recursion */ function square_recur($var) { if (is_array($var)) return array_map('square_recur', $var); return $var * $var; } $rec_array = array(1, 2, array(3, 4, array(5, 2), array() ) ); var_dump( array_map('square_recur', $rec_array) ); /* callback function as string variable containing the function name */ $string_var = "square"; var_dump( array_map("square", $a) ); var_dump( array_map($string_var, $a) ); echo "\n*** Testing error conditions ***\n"; /* arguments of non array type */ $int_var=10; $float_var = 10.5; var_dump( array_map('square', $int_var) ); var_dump( array_map('square', $float_var) ); var_dump( array_map('square', $string_var) ); /* Zero argument */ var_dump( array_map() ); /* use array(), echo(), empty(), eval(), exit(), isset(), list(), print() and unset() as callback, failure expected */ var_dump( array_map( 'echo', array(1) ) ); var_dump( array_map( 'array', array(1) ) ); var_dump( array_map( 'empty', array(1) ) ); var_dump( array_map( 'eval', array(1) ) ); var_dump( array_map( 'exit', array(1) ) ); var_dump( array_map( 'isset', array(1) ) ); var_dump( array_map( 'list', array(1) ) ); var_dump( array_map( 'print', array(1) ) ); echo "\n*** Testing operation on objects ***\n"; /* array_map with class object */ class check_array_map { public static function helloWorld() { return "Static_Function_helloWorld(): Hello World"; } public function Message($v) { return $v; } public static function Square( $n ) { return $n * $n; } } /* call static member function */ var_dump( array_map( array('check_array_map', 'Square'), array(1,2,3)) ); /* call non static member function - notice should be issues*/ var_dump( array_map( array('check_array_map', 'Message'), array(1)) ); /* call function using object */ $obj = new check_array_map(); var_dump( array_map( array($obj, 'helloWorld' ) ) ); // not enough args warning var_dump( array_map( array($obj, 'helloWorld'), array(1) ) ); echo "Done\n"; ?> --EXPECTF-- *** Testing basic operations *** array(0) { } array(0) { } array(3) { [0]=> array(2) { [0]=> int(1) [1]=> int(1) } [1]=> array(2) { [0]=> int(2) [1]=> int(2) } [2]=> array(2) { [0]=> int(3) [1]=> int(3) } } array(4) { [0]=> array(2) { [0]=> int(1) [1]=> int(1) } [1]=> array(2) { [0]=> int(2) [1]=> int(2) } [2]=> array(2) { [0]=> NULL [1]=> int(3) } [3]=> array(2) { [0]=> NULL [1]=> int(4) } } array(3) { [0]=> array(2) { [0]=> string(3) "Jan" [1]=> string(2) "31" } [1]=> array(2) { [0]=> string(3) "Feb" [1]=> string(2) "28" } [2]=> array(2) { [0]=> string(5) "March" [1]=> string(2) "31" } } array(3) { [0]=> array(2) { [0]=> string(4) "Text" [1]=> int(4) } [1]=> array(2) { [0]=> string(5) "Words" [1]=> int(5) } [2]=> array(2) { [0]=> string(6) "Lineup" [1]=> int(6) } } array(4) { [0]=> array(2) { [0]=> string(1) "a" [1]=> NULL } [1]=> array(2) { [0]=> string(2) "ab" [1]=> NULL } [2]=> array(2) { [0]=> string(3) "abc" [1]=> NULL } [3]=> array(2) { [0]=> string(4) "abcd" [1]=> NULL } } array(3) { [0]=> array(2) { [0]=> string(2) "01" [1]=> string(3) "Jan" } [1]=> array(2) { [0]=> string(2) "02" [1]=> string(3) "Feb" } [2]=> array(2) { [0]=> string(2) "03" [1]=> string(5) "March" } } array(3) { ["key1"]=> int(1) ["key2"]=> int(4) ["key3"]=> int(9) } *** Testing possible variations *** array(5) { [0]=> int(6) [1]=> int(8) [2]=> int(10) [3]=> int(8) [4]=> int(9) } array(2) { [0]=> array(2) { [0]=> string(5) "Hello" [1]=> string(5) "World" } [1]=> array(2) { [0]=> string(4) "Good" [1]=> string(3) "Day" } } Array ( [0] => 1 [1] => 4 [2] => 9 ) array(3) { [0]=> int(1) [1]=> int(4) [2]=> array(4) { [0]=> int(9) [1]=> int(16) [2]=> array(2) { [0]=> int(25) [1]=> int(4) } [3]=> array(0) { } } } array(3) { [0]=> int(1) [1]=> int(4) [2]=> int(9) } array(3) { [0]=> int(1) [1]=> int(4) [2]=> int(9) } *** Testing error conditions *** Warning: array_map(): Argument #2 should be an array in %s on line %d NULL Warning: array_map(): Argument #2 should be an array in %s on line %d NULL Warning: array_map(): Argument #2 should be an array in %s on line %d NULL Warning: Wrong parameter count for array_map() %s on line %d NULL Warning: array_map(): The first argument, 'echo', should be either NULL or a valid callback in %s on line %d NULL Warning: array_map(): The first argument, 'array', should be either NULL or a valid callback in %s on line %d NULL Warning: array_map(): The first argument, 'empty', should be either NULL or a valid callback in %s on line %d NULL Warning: array_map(): The first argument, 'eval', should be either NULL or a valid callback in %s on line %d NULL Warning: array_map(): The first argument, 'exit', should be either NULL or a valid callback in %s on line %d NULL Warning: array_map(): The first argument, 'isset', should be either NULL or a valid callback in %s on line %d NULL Warning: array_map(): The first argument, 'list', should be either NULL or a valid callback in %s on line %d NULL Warning: array_map(): The first argument, 'print', should be either NULL or a valid callback in %s on line %d NULL *** Testing operation on objects *** array(3) { [0]=> int(1) [1]=> int(4) [2]=> int(9) } Strict Standards: Non-static method check_array_map::Message() cannot be called statically in %s on line %d Strict Standards: Non-static method check_array_map::Message() cannot be called statically in %s on line %d array(1) { [0]=> int(1) } Warning: Wrong parameter count for array_map() in %s on line %d NULL array(1) { [0]=> string(41) "Static_Function_helloWorld(): Hello World" } Done