本文介绍了php递归函数中返回值的正确用法,php递归函数中使用return返回值需要注意哪些问题,以加深对php递归函数的理解。
php递归函数返回值
例子,php递归函数返回值写法。
代码示例:
0) {
$n–;
return sum($n,$s);
}else{
return $s;
}
}
$sum = 0;
echo sum(5,$sum);
在使用php递归函数时,会遇到php递归返回值时出现的问题。
通常问题都出在递归函数的返回值上。
最初的php递归函数的例子:
代码示例:
以上代码中,else里面是有问题的。在这里执行的test没有返回值。
虽然满足条件$i < 3时 return $i整个函数还是不会返回值的。
对以上php递归返回值函数做如下修改:
代码示例:
< ?php
function test($i)
{
$i -= 4;
if($i < 3)
{
return $i;
}
else
{
return test($i); //增加return, 让函数返回值
}
}
echo test(30);
?>
二、对php递归函数的理解
递归函数为自调用函数,在函数体内直接或间接自己调用自己,但需要设置自调用的条件,若满足条件,则调用函数本身,若不满足则终止本函数的自调用,然后把目前流程的主控权交回给上一层函数来执行。
例子:
代码示例:
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
此时函数已经不再调用自己,开始将流程的主控权交回给上一层函数来执行,也就是开始执行刚刚所有test()函数没来得及输出的最后一个echo,0的一层是1也就是输出1 1的上一层是2 也就是输出2 2没有山一层 所以呢 输出的内容就是2 1 00 1 2
三、php递归函数中使用return返回值需要注意哪些问题?
php递归函数中使用return时无法正确返回想要的值怎么办?
例子:
代码示例:
function test($i){
$i-=4;
if($i<3){
return $i;
}else{
test($i);
}
}
echotest(30);
以上代码在运行进,这个函数的else里面是有问题的。在这段代码里面执行的结果是没有返回值的。
虽然满足条件 $i<3 时return $i整个函数还是不会返回值的。
对上面的PHP递归函数,做如下修改:
代码示例:
function test($i){
$i-=4;
if($i<3){
return $i;
}else{
return test($i);//增加return,让函数返回值
}
}
echotest(30);
如此,在调用php递归函数时,就可以返回需要的值了。
今天的文章php中的递归调用函数返回值,深入理解php递归函数返回值的正确用法分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/33627.html