Chinaunix首页 | 论坛 | 博客
  • 博客访问: 304948
  • 博文数量: 111
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 707
  • 用 户 组: 普通用户
  • 注册时间: 2013-02-26 11:00
个人简介

小伙向前冲呀,小伙向前冲呀。

文章分类

全部博文(111)

文章存档

2014年(43)

2013年(68)

我的朋友

分类: PHP

2014-01-18 07:27:13

php递归函数中使用return时会碰到无法正确返回想要的值的情况,这里分享下解决办法。

例如:
function test($i){ 
$i-=4; 
if($i<3){ 
return $i; 
}else{ 
test($i); 


echotest(30); 
这段代码看起来没有问题,如果不运行一下估计你也不会认为他有什么问题,及时运行起来发现有问题你也不一定知道哪里有问题,但其实这个函数的else里面是有问题的。

在这段代码里面执行的结果是没有返回值的。所以虽然满足条件 $i<3 时return $i整个函数还是不会返回值的。

因此对上面的PHP递归函数可做如下修改(更多PHP教程请访问代码家园): 

function test($i){ 
$i-=4; 
if($i<3){ 
return $i; 
}else{
return test($i);//增加return,让函数返回值 


echotest(30); 
阅读(1060) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~