如何在 PHP 中实现递归?
大家好!请问如何在 PHP 中正确实现递归。我正在编写一个函数来遍历多维数组并计算所有值的总和,但结果要么是 0,要么是无限循环。
以下是我尝试过的代码:
function recursiveSum($arr) {\n static $sum = 0;\n foreach ($arr as $value) {\n if (is_array($value)) {\n recursiveSum($value);\n } else {\n $sum += $value;\n }\n }\n return $sum;\n}\n\n$data = [1, [2, 3], [4, [5, 6]]];\necho recursiveSum($data); // 期望:21问题在于,当用不同的数组多次调用函数时,由于使用了 static 变量,结果会累积。我也尝试过通过引用传递 sum(&$sum),但函数返回了意外的值。使用全局变量的方案也不合适——这违反了代码的纯洁性原则。
我期望函数能够返回任意嵌套数组中所有数字的总和,并且每次调用时都独立计算。