【发布时间】:2013-01-01 08:31:51
【问题描述】:
我正在从 O'reilly 媒体书籍“PHP 编程”中学习 PHP,我偶然发现了这一点:
function add_up ($running_total, $current_value) {
$running_total += $current_value * $current_value;
return $running_total;
}
$numbers = array(2, 3, 5, 7);
$total = array_reduce($numbers, 'add_up');
echo $total;
array_reduce() 行进行这些函数调用:
add_up(2,3)
add_up(11,5)
add_up(36,7)
// $total is now 87
但是当我计算时我得到 85。我认为它应该这样写:
array_reduce( ) 行进行这些函数调用:
add_up (0,2);
add_up (4,3);
add_up (13,5);
add_up (38,7);
因为可选值 $initial 默认设置为NULL。
mixed array_reduce ( array $input , callable $function [, mixed $initial = NULL ] )
有更多知识的人可以向我解释一下,谁错了,为什么?
【问题讨论】:
-
查看本书的勘误页。
-
手动计算时得到 87。编辑:viper-7.com/CG6bZe
-
我的意思是我在使用书中的函数调用时得到 85,而按照我的方式得到 87..
标签: php array-reduce