Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
<?php
$prices = [10, 20, 30];
$withTax = array_map(fn($p) => $p * 1.1, $prices);
$total = array_reduce($prices, fn($sum, $p) => $sum + $p, 0);
echo count($withTax), ' ', $total, ' ', $prices[0], "\n";3 60 10
- Ждать, что
array_mapизменит$prices: она возвращает новый массив, а исходный оставляет как был, поэтому$prices[0]по-прежнему10. - Ждать, что
$sumв каждом вызове начинается с0:array_reduceпередаёт то, что вернул один вызов, в следующий, начиная с третьего аргумента.
- Что вернёт
array_reduceдля пустого массива, если не задать начальное значение? - Как получить ту же сумму одной встроенной функцией?