何らかの理由で、PHP の関数はarray_reduce
3 番目のパラメーターとして整数のみを受け入れます。この 3 番目のパラメーターは、リダクション プロセス全体の開始点として使用されます。
function int_reduc($return, $extra) {
return $return + $extra;
}
$arr = array(10, 20, 30, 40);
echo array_reduce($arr, 'int_reduc', 0); //Will output 100, which is 0 + 10 + 20 + 30 + 40
function str_reduc($return, $extra) {
return $return .= ', ' . $extra;
}
$arr = array('Two', 'Three', 'Four');
echo array_reduce($arr, 'str_reduc', 'One'); //Will output 0, Two, Three, Four
2 番目の呼び出しでは、'One'
が整数値 (0) に変換されてから使用されます。
なぜPHPはこれを行うのですか!?
どんな回避策も歓迎...