
递归调用的执行顺序问题
<?php$str='hello';reverse_i($str);functionreverse_i($str){echo$str,PHP_EOL;//看看传入了什么i...
<?php
$str='hello';
reverse_i($str);
function reverse_i($str)
{
echo $str, PHP_EOL; //看看传入了什么
if(strlen($str)>0)
{
reverse_i(substr($str,1));
}
echo substr($str,0,1);
}
?>
这段代码的执行顺序是 当if不满足条件后 输出 o 下一步执行哪一句?怎么会倒序输出?如何执行呢?始终弄不明白! 展开
$str='hello';
reverse_i($str);
function reverse_i($str)
{
echo $str, PHP_EOL; //看看传入了什么
if(strlen($str)>0)
{
reverse_i(substr($str,1));
}
echo substr($str,0,1);
}
?>
这段代码的执行顺序是 当if不满足条件后 输出 o 下一步执行哪一句?怎么会倒序输出?如何执行呢?始终弄不明白! 展开
3个回答
展开全部
递归的执行顺序就像栈一样,你可以把递归调用函数,每一层都放入栈,有返回值时,然后挨着从栈内取出之前的函数段执行,一直执行到栈内为空为止,这过程中所有执行的结果即是该递归调用的结果
不过 我看你这个递归调用 貌似有点问题
不过 我看你这个递归调用 貌似有点问题
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询