【发布时间】:2021-01-07 10:24:56
【问题描述】:
考虑以下 PHP 代码:
function awesome(array $array): void {
foreach ($array as $a) {
if (!is_string($a)) {
awesome($a);
}
}
}
awesome(array('a' => array('abc'), 'b' => array('def'), 'c' => array('ghi')));
这里描述的是什么类型的递归?
我理解线性递归是一种递归,其中递归函数只被调用一次。在这种情况下,递归函数被调用一次,但是函数调用在一个迭代循环中。
当然,这里发生的是线性递归,而不是其他类型的递归。
【问题讨论】:
-
您到底在寻找什么?
-
@A.Gille 只是这里使用的递归的名称/类型......您是否知道这是线性递归的示例还是这里发生的另一种类型的递归?按英文单词输入,而不是按用户定义的类型输入。
-
这不是线性递归,因为每次递归可以有多个递归调用。我相信它被称为“多重递归”。
-
@A.Gille awesome() 在每次迭代中只被调用一次......所以我很确定这不是“多重递归”的例子
-
@A.Gille 同样,awesome() 被水平(或连续)多次调用,而不是在同一次迭代中
标签: php recursion computer-science