1--TEST-- 2Test array_walk_recursive() function : usage variations - 'input' argument containing reference variables 3--FILE-- 4<?php 5/* Prototype : bool array_walk_recursive(array $input, string $funcname [, mixed $userdata]) 6 * Description: Apply a user function to every member of an array 7 * Source code: ext/standard/array.c 8*/ 9 10/* 11 * Testing array_walk_recursive() with an array having reference variables 12*/ 13 14echo "*** Testing array_walk_recursive() : array with references ***\n"; 15 16$value1 = 10; 17$value2 = -20; 18$value3 = &$value1; 19$value4 = 50; 20 21// 'input' array containing references to above variables 22$input = array(&$value1, array(&$value2, -35), array(&$value3, 0), array(&$value4)); 23 24// callback function 25/* Prototype : callback(int $value, mixed $key) 26 * Parameters : $value - values in given input array 27 * $key - keys in given input array 28 * Description : function checks for the value whether positive or negative and displays according to that 29 */ 30function callback($value, $key) 31{ 32 // dump the arguments to check that they are passed 33 // with proper type 34 var_dump($key); // key 35 var_dump($value); // value 36 echo "\n"; // new line to separate the output between each element 37} 38 39var_dump( array_walk_recursive($input, "callback")); 40 41echo "Done" 42?> 43--EXPECTF-- 44*** Testing array_walk_recursive() : array with references *** 45int(0) 46int(10) 47 48int(0) 49int(-20) 50 51int(1) 52int(-35) 53 54int(0) 55int(10) 56 57int(1) 58int(0) 59 60int(0) 61int(50) 62 63bool(true) 64Done 65