第5章 組み込み関数 / 第4回 模擬試験

次のコードの実行結果として正しいものはどれか。 ```php $nums = [1, 2, 3, 4]; $total = array_reduce($nums, fn($carry, $item) => $carry + $item, 0); print $total; ```

10 正解
4
0
24
解説
`array_reduce($array, $callback, $initial)`は、初期値`$initial`(この場合`0`)から始めて、配列の各要素を順にコールバック関数へ渡し、その戻り値を次の要素処理時の`$carry`(累積値)として使い回します。 ・初期値: `$carry = 0` ・要素`1`: `$carry = 0 + 1 = 1` ・要素`2`: `$carry = 1 + 2 = 3` ・要素`3`: `$carry = 3 + 3 = 6` ・要素`4`: `$carry = 6 + 4 = 10` 最終的な`$carry`の値`10`が返されます。 例: ``` $nums = [1, 2, 3, 4]; $total = array_reduce($nums, fn($carry, $item) => $carry + $item, 0); print $total; // 10 ``` 初期値を`0`ではなく`1`にすると合計に1が加算されてしまう、配列が空の場合は初期値がそのまま返る、といった細かい挙動も押さえておくとよいでしょう。 (参照: 独習PHP 第4版 第5章 組み込み関数 5.3.15節 array_reduce関数 p.211〜212)