一个PHP的递归函数如何理解
<?phpfunctionstr($str){if(strlen($str)>0){str(substr($str,1));}echosubstr($str,0,1);r...
<?php
function str($str){
if(strlen($str)>0){
str(substr($str,1));
}
echo substr($str,0,1);
return;
}
str('hello');
?> 展开
function str($str){
if(strlen($str)>0){
str(substr($str,1));
}
echo substr($str,0,1);
return;
}
str('hello');
?> 展开
3个回答
展开全部
首先明白递归是栈结构存储,即先进后出, 来看你这个列子,hello字符串进入substr函数首先得到ello不满足跳出递归条件继续递归,直到最后字符串o满足条件跳出递归,于是执行echo,将o先输出接着将lo第一位输出,接着将llo第一位.....
我是这么理解的不知道帮到你了么
我是这么理解的不知道帮到你了么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看下函数的运行的:
当$str的长度大于0时,str(substr($str,1))----即从第一位开始取值,重新值赋予str()函数,递归开始第一次。
如果$str 为 hello
那第一次递归,输出:h
依次输出:
h
e
l
l
o
当$str的长度大于0时,str(substr($str,1))----即从第一位开始取值,重新值赋予str()函数,递归开始第一次。
如果$str 为 hello
那第一次递归,输出:h
依次输出:
h
e
l
l
o
追问
不对啊 输出的是hello的倒序 olleh?
追答
。。。。。。。。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
功能是实现将 $str 这个串倒着输出来
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询