Como implementar recursão em PHP?
Olá a todos! Por favor, me digam como implementar recursão corretamente em PHP. Estou escrevendo uma função para percorrer um array multidimensional e somar todos os valores, mas no final recebo 0 ou um loop infinito.
Aqui está o que tentei:
function recursiveSum($arr) {
static $sum = 0;
foreach ($arr as $value) {
if (is_array($value)) {
recursiveSum($value);
} else {
$sum += $value;
}
}
return $sum;
}
$data = [1, [2, 3], [4, [5, 6]]];
echo recursiveSum($data); // esperado: 21O problema é que, ao chamar a função repetidamente com arrays diferentes, o resultado se acumula por causa da variável static. Também tentei passar a soma por referência (&$sum), mas a função retorna valores inesperados. Outra opção com variável global também não é adequada — isso viola os princípios de código limpo.
Espero que a função retorne a soma de todos os números em um array de qualquer aninhamento, e que cada chamada