Home >Backend Development >PHP Tutorial >PHP递归函数的一些疑问

PHP递归函数的一些疑问

WBOY
WBOYOriginal
2016-06-23 13:34:58841browse

不多说了,直接在代码中注释我的问题

<?phpfunction digui($i = 0) {	if ($i < 3) {		digui(++ $i);		echo $i;//当满足$i < 3已经进行递归了,当不满足,也就跳过这个判断了。为什么这里会被执行!	}	return $i;//为什么返回的不是最后一次递归后的值,3}$r = digui();var_dump($r);


回复讨论(解决方案)

digui(++ $i);
改为
$i = digui(++ $i);

digui 函数有返回值,你总得有个人接住他吧

重点,如何让他返回3
递归的大致意思已经明白

digui(++ $i);
改为
$i = digui(++ $i);

digui 函数有返回值,你总得有个人接住他吧


看百贴,不如提一问,解决

函数应写成这样才合理

function digui($i = 0) {    if ($i < 3) {        echo $i;        return digui(++ $i);    }    return $i;}

牛叉

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn