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设计模式中的工厂模式
Jun 12 PHP
php array_intersect比array_diff快(附详细的使用说明)
Jul 03 PHP
Linux环境下搭建php开发环境的操作步骤
Jun 17 PHP
使用php伪造referer的方法 利用referer防止图片盗链
Jan 20 PHP
php异常处理使用示例
Feb 25 PHP
Symfony数据校验方法实例分析
Jan 26 PHP
利用PHP脚本在Linux下用md5函数加密字符串的方法
Jun 29 PHP
iOS10推送通知开发教程
Sep 19 PHP
php数组指针操作详解
Feb 14 PHP
PHP实现登录注册之BootStrap表单功能
Sep 03 PHP
PHP 结合 Boostrap 结合 js 实现学生列表删除编辑及搜索功能
May 21 PHP
PHP工厂模式、单例模式与注册树模式实例详解
Jun 03 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简单封装了一些常用JS操作
2007/02/25 PHP
php侧拉菜单 漂亮,可以向右或者向左展开,支持FF,IE
2009/10/15 PHP
php array_keys 返回数组的键名
2016/10/25 PHP
js 页面刷新location.reload和location.replace的区别小结
2009/12/24 Javascript
javascript 运算数的求值顺序
2011/08/23 Javascript
jquery乱码与contentType属性设置问题解决方案
2013/01/07 Javascript
扩展IE中一些不兼容的方法如contains、startWith等等
2014/01/09 Javascript
js+html5实现canvas绘制简单矩形的方法
2015/06/05 Javascript
JavaScript中var关键字的使用详解
2015/08/14 Javascript
AngularJS自动表单验证
2016/02/01 Javascript
JS实现动态增加和删除li标签行的实例代码
2016/10/16 Javascript
深入理解jquery中的each用法
2016/12/14 Javascript
JS验证不重复验证码
2017/02/10 Javascript
如何选择适合你的JavaScript框架
2017/11/20 Javascript
JS+canvas画一个圆锥实例代码
2017/12/13 Javascript
vue基础之模板和过滤器用法实例分析
2019/03/12 Javascript
layui表格数据复选框回显设置方法
2019/09/13 Javascript
微信小程序停止其他视频播放当前视频的实例代码
2019/12/25 Javascript
Windows下用py2exe将Python程序打包成exe程序的教程
2015/04/08 Python
简单介绍Python中的try和finally和with方法
2015/05/05 Python
在Python中处理日期和时间的基本知识点整理汇总
2015/05/22 Python
Python使用ftplib实现简易FTP客户端的方法
2015/06/03 Python
wxPython之解决闪烁的问题
2018/01/15 Python
python使用turtle库与random库绘制雪花
2018/06/22 Python
python自定义函数实现最大值的输出方法
2019/07/09 Python
django 连接数据库出现1045错误的解决方式
2020/05/14 Python
Pycharm连接gitlab实现过程图解
2020/09/01 Python
css3动画 小球滚动 js控制动画暂停
2019/11/29 HTML / CSS
HTML5 Video标签的属性、方法和事件汇总介绍
2015/04/24 HTML / CSS
业务总经理岗位职责
2014/02/03 职场文书
创业者是否需要商业计划书?
2014/02/07 职场文书
应届生自荐书
2014/06/23 职场文书
2014年人民调解工作总结
2014/12/08 职场文书
精神文明建设先进个人事迹材料
2014/12/24 职场文书
JavaCV实现照片马赛克效果
2022/01/22 Java/Android
如何利用golang运用mysql数据库
2022/03/13 Golang