php递归函数中使用return的注意事项


Posted in PHP onJanuary 17, 2014

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);
PHP 相关文章推荐
聊天室php&amp;mysql(三)
Oct 09 PHP
用php和MySql来与ODBC数据连接
Oct 09 PHP
PHP生成UTF8文件的方法
May 15 PHP
简单的PHP多图上传小程序代码
Jul 17 PHP
PHP类的静态(static)方法和静态(static)变量使用介绍
Feb 19 PHP
基于PHP创建Cookie数组的详解
Jul 03 PHP
PHP抓屏函数实现屏幕快照代码分享
Jan 02 PHP
phplot生成图片类用法详解
Jan 06 PHP
PHP的AES加密算法完整实例
Jul 20 PHP
CI框架无限级分类+递归的实现代码
Nov 01 PHP
PHP实现数据库统计时间戳按天分组输出数据的方法
Oct 10 PHP
PHPStudy下如何为Apache安装SSL证书的方法步骤
Jan 23 PHP
使用PHP强制下载PDF文件示例
Jan 17 #PHP
5种PHP创建数组的实例代码分享
Jan 17 #PHP
实现PHP多线程异步请求的3种方法
Jan 17 #PHP
一个PHP二维数组排序的函数分享
Jan 17 #PHP
PHP登陆后跳转到登陆前页面实现思路及代码
Jan 17 #PHP
修改apache配置文件去除thinkphp url中的index.php
Jan 17 #PHP
php使用curl访问https示例分享
Jan 17 #PHP
You might like
PHP简单系统查询模块代码打包下载
2008/06/07 PHP
php 使用GD库为页面增加水印示例代码
2014/03/24 PHP
Laravle eloquent 多对多模型关联实例详解
2017/11/22 PHP
php实现的支付宝网页支付功能示例【基于TP5框架】
2019/09/16 PHP
基于ThinkPHP删除目录及目录文件函数
2020/10/28 PHP
从js向Action传中文参数出现乱码问题的解决方法
2013/12/29 Javascript
5个可以帮你理解JavaScript核心闭包和作用域的小例子
2014/10/08 Javascript
jquery+json实现分页效果
2016/03/07 Javascript
zTree树形插件异步加载方法详解
2017/06/14 Javascript
原生JS实现多个小球碰撞反弹效果示例
2018/01/31 Javascript
使用Angular-CLI构建NPM包的方法
2018/09/07 Javascript
vue添加axios,并且指定baseurl的方法
2018/09/19 Javascript
小程序server请求微信服务器超时的解决方法
2019/05/21 Javascript
JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支
2019/07/04 Javascript
基于Nuxt.js项目的服务端性能优化与错误检测(容错处理)
2019/10/23 Javascript
浅谈vue单页面中有多个echarts图表时的公用代码写法
2020/07/19 Javascript
Openlayers显示地理位置坐标的方法
2020/09/28 Javascript
[19:15]DK战队纪录片
2014/09/02 DOTA
[58:25]VP vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python中的下划线详解
2015/06/24 Python
Python的“二维”字典 (two-dimension dictionary)定义与实现方法
2016/04/27 Python
python构建深度神经网络(续)
2018/03/10 Python
Python使用Selenium模块模拟浏览器抓取斗鱼直播间信息示例
2018/07/18 Python
Django重置migrations文件的方法步骤
2019/05/01 Python
python pandas时序处理相关功能详解
2019/07/03 Python
python pprint模块中print()和pprint()两者的区别
2020/02/10 Python
Python基于pandas爬取网页表格数据
2020/05/11 Python
美国家喻户晓的保健品品牌:Vitamin World(维他命世界)
2016/08/19 全球购物
美国零售商店:Blue&Cream
2017/04/07 全球购物
Sasa莎莎海外旗舰店:香港莎莎美妆平台
2018/03/21 全球购物
同学聚会老师邀请函
2014/01/28 职场文书
低碳环保口号
2014/06/12 职场文书
品质标语大全
2014/06/21 职场文书
过程装备与控制工程专业求职信
2014/07/02 职场文书
晶体管单管来复再生式收音机
2021/04/22 无线电
python实现简单聊天功能
2021/07/07 Python