PHP 递归算法的一个简单示例
递归函数是任意函数。直接调用或直接在函数体内调用,但需要设置自调用的条件。如果满足条件,则调用函数本身。如果没有,它就会停止。该函数调用自身,然后将当前进程的控制权返回给上层函数执行。也许这就是向我们解释的方式,但即使这样也很难理解。比如
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前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。