PHP递归函数

PHP递归函数,php,recursion,Php,Recursion,我不熟悉递归的概念。我创建了以下示例来尝试和理解递归。但是我有困难,非常感谢你的帮助 function getX($count){ $count++; if($count <= 10){ $countTemp = getX($count); echo $countTemp; //Shouldn't this skipped? } return $count; } getX(0); 函数getX($count){ $coun

我不熟悉递归的概念。我创建了以下示例来尝试和理解递归。但是我有困难,非常感谢你的帮助

function getX($count){
    $count++;
    if($count <= 10){
        $countTemp = getX($count);
        echo $countTemp; //Shouldn't this skipped?
    }
    return $count;
}

getX(0);
函数getX($count){ $count++;
如果($count它不是也不应该被忽略,只是延迟执行-这就是为什么您以相反的顺序获得数字。当
$count
达到11时,
if
条件中的代码被跳过,
$count
的值返回到第10次迭代(在
if
内)在本次迭代中,
$countTemp
是10,返回到第9次迭代,并再次作为
$countTemp
返回,这不是也不应该被忽略,只是延迟执行-这就是为什么您以相反的顺序获得数字。当
$count
达到11时,如果
中的代码e> 跳过条件,
$count
的值返回到第10次迭代(在
中,如果
),并作为
$countTemp
进行回显。在此迭代中,
$count
为10,返回到第9次迭代,再次作为
$countTemp>进行回显,执行顺序如下:
如果1,执行顺序如下:

如果1我想它足够具体,不至于结束,因为我已经读过一次了,所以:要理解递归,你必须首先理解递归。:)但是,代码echo$countTemp;是否应该被忽略,因为上面的语句会导致递归?它不会被跳过。这里的递归有深度限制,所以在函数调用后,控件会被传递回原地。我想它足够具体,不必关闭,因为重复读过这篇文章。所以:要理解递归,必须首先理解递归on.:)但代码echo$countTemp;是否应该被忽略,因为上面的语句会导致递归?它不会被跳过。此处的递归具有深度限制,因此在函数调用后会将控件传递回place。
if 1 <= 10 true call getX(1)
    if 2 <= 10 true call getX(2)
        if n <= 10 call getX(n)
            if 11 <= 10 false
            // now go all the way back to the getX(0)
            return and echo 11;
        return and echo n;
    return and echo 2;
return and echo 1;