私はO'reillyのメディアブック「ProgrammingPHP」から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 ] )
より多くの知識を持った誰かが私に、誰が間違っているのか、そしてその理由を説明できますか?