Code前端首页关于Code前端联系我们

PHP 递归算法的一个简单示例

terry 2年前 (2023-09-25) 阅读数 50 #后端开发

递归函数是任意函数。直接调用或直接在函数体内调用,但需要设置自调用的条件。如果满足条件,则调用函数本身。如果没有,它就会停止。该函数调用自身,然后将当前进程的控制权返回给上层函数执行。也许这就是向我们解释的方式,但即使这样也很难理解。比如

function test ($n){
  echo $n." ";
  if($n>0){
    test($n-1);
  }else{
    echo "";
  }
  echo $n." "
}
test(2)

最终的输出是

2 1 00 1 2

我解释一下为什么输出是这样的

第一步是做test(2),echo 2,然后因为2>0,做test(1),后面还有一个echo 2

没有做完。第二步是执行 test(1),echo 1,然后,由于 1>0,执行 test(0)。同样,还有echo 1执行失败。

三步,执行test(0),echo 0,执行test(0),echo 0,现在不满足条件0>0,不再执行test()函数,而是echo "",并且下面的 echo 0

现在函数不再调用自身,开始将进程控制权返回给上层函数执行,即开始执行最后一个 echo 0,所有 test() 函数都没有输出现在。上面一层是1,表示输出是1 1。上面一层是2,表示输出是2。2没有层,所以输出内容是2 1 00 1 2。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门