一个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');
?>
展开
 我来答
风云日日长2595
2012-04-29
知道答主
回答量:16
采纳率:0%
帮助的人:14.9万
展开全部
首先明白递归是栈结构存储,即先进后出, 来看你这个列子,hello字符串进入substr函数首先得到ello不满足跳出递归条件继续递归,直到最后字符串o满足条件跳出递归,于是执行echo,将o先输出接着将lo第一位输出,接着将llo第一位.....
我是这么理解的不知道帮到你了么
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乐天无极
2011-12-09 · TA获得超过291个赞
知道小有建树答主
回答量:1085
采纳率:0%
帮助的人:411万
展开全部
看下函数的运行的:
当$str的长度大于0时,str(substr($str,1))----即从第一位开始取值,重新值赋予str()函数,递归开始第一次。
如果$str 为 hello
那第一次递归,输出:h
依次输出:
h
e
l
l
o
追问
不对啊  输出的是hello的倒序 olleh?
追答
。。。。。。。。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
miniappYkhZk6pJbBBud
2011-12-09 · 超过11用户采纳过TA的回答
知道答主
回答量:50
采纳率:100%
帮助的人:9.7万
展开全部
功能是实现将 $str 这个串倒着输出来
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式