问题描述
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的不同值。