1--TEST-- 2Test array_walk() function : basic functionality - associative array 3--FILE-- 4<?php 5echo "*** Testing array_walk() : basic functionality ***\n"; 6 7// associative array 8$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple"); 9 10function test_alter(&$item, $key, $prefix) 11{ 12 // dump the arguments to check that they are passed 13 // with proper type 14 var_dump($item); // value 15 var_dump($key); // key 16 var_dump($prefix); // additional argument passed to callback function 17 echo "\n"; // new line to separate the output between each element 18} 19 20function test_print($item, $key) 21{ 22 // dump the arguments to check that they are passed 23 // with proper type 24 var_dump($item); // value 25 var_dump($key); // key 26 echo "\n"; // new line to separate the output between each element 27} 28 29echo "-- Using array_walk with default parameters to show array contents --\n"; 30var_dump(array_walk($fruits, 'test_print')); 31 32echo "-- Using array_walk with one optional parameter to modify contents --\n"; 33var_dump (array_walk($fruits, 'test_alter', 'fruit')); 34 35echo "-- Using array_walk with default parameters to show modified array contents --\n"; 36var_dump (array_walk($fruits, 'test_print')); 37 38echo "Done"; 39?> 40--EXPECT-- 41*** Testing array_walk() : basic functionality *** 42-- Using array_walk with default parameters to show array contents -- 43string(5) "lemon" 44string(1) "d" 45 46string(6) "orange" 47string(1) "a" 48 49string(6) "banana" 50string(1) "b" 51 52string(5) "apple" 53string(1) "c" 54 55bool(true) 56-- Using array_walk with one optional parameter to modify contents -- 57string(5) "lemon" 58string(1) "d" 59string(5) "fruit" 60 61string(6) "orange" 62string(1) "a" 63string(5) "fruit" 64 65string(6) "banana" 66string(1) "b" 67string(5) "fruit" 68 69string(5) "apple" 70string(1) "c" 71string(5) "fruit" 72 73bool(true) 74-- Using array_walk with default parameters to show modified array contents -- 75string(5) "lemon" 76string(1) "d" 77 78string(6) "orange" 79string(1) "a" 80 81string(6) "banana" 82string(1) "b" 83 84string(5) "apple" 85string(1) "c" 86 87bool(true) 88Done 89