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 相关文章推荐
海河写的 Discuz论坛帖子调用js的php代码
Aug 23 PHP
PHP Squid中可缓存的动态网页设计
Sep 17 PHP
使用Limit参数优化MySQL查询的方法
Nov 12 PHP
PHP Document 代码注释规范
Apr 13 PHP
PHP 一个随机字符串生成代码
May 26 PHP
PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法
Dec 25 PHP
php模拟post提交数据的方法
Feb 12 PHP
php对关联数组循环遍历的实现方法
Mar 13 PHP
CI框架数据库查询缓存优化的方法
Nov 21 PHP
php+redis实现多台服务器内网存储session并读取示例
Jan 12 PHP
Yii2框架视图(View)操作及Layout的使用方法分析
May 27 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
Feb 27 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文字水印和php图片水印实现代码(二种加水印方法)
2013/12/25 PHP
win10环境PHP 7 安装配置【教程】
2016/05/09 PHP
PHP使用HTML5 FormData对象提交表单操作示例
2019/07/02 PHP
laravel实现上传图片并在页面显示的例子
2019/10/14 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
2020/02/18 PHP
jquery中文乱码的多种解决方法
2013/06/21 Javascript
document.documentElement和document.body区别介绍
2013/09/16 Javascript
分享28款免费实用的 JQuery 图片和内容滑块插件
2014/12/15 Javascript
js实现浏览器窗口大小被改变时触发事件的方法
2015/02/02 Javascript
JavaScript Length 属性的总结
2015/11/02 Javascript
jQuery实现进度条效果代码
2015/12/17 Javascript
JavaScript知识点总结(五)之Javascript中两个等于号(==)和三个等于号(===)的区别
2016/05/31 Javascript
Js获取当前日期时间及格式化代码
2016/09/17 Javascript
webpack学习笔记之优化缓存、合并、懒加载
2017/08/24 Javascript
nodeJs实现基于连接池连接mysql的方法示例
2018/02/10 NodeJs
Vue自定义过滤器格式化数字三位加一逗号实现代码
2018/03/23 Javascript
Javascript如何实现双指控制图片功能
2020/02/25 Javascript
JS判断浏览器类型与操作系统的方法分析
2020/04/30 Javascript
[04:09]显微镜下的DOTA2第十二期—NaVi美如画的团战
2014/06/23 DOTA
python文件和目录操作函数小结
2014/07/11 Python
深入理解Django的自定义过滤器
2017/10/17 Python
Python3 中把txt数据文件读入到矩阵中的方法
2018/04/27 Python
pandas DataFrame索引行列的实现
2019/06/04 Python
Python利用神经网络解决非线性回归问题实例详解
2019/07/19 Python
基于python traceback实现异常的获取与处理
2019/12/13 Python
TensorBoard 计算图的可视化实现
2020/02/15 Python
Python语言编写智力问答小游戏功能
2020/10/13 Python
python 多进程和协程配合使用写入数据
2020/10/30 Python
常用的四种CSS透明属性介绍
2014/04/12 HTML / CSS
日本钓鱼渔具和户外用品网上商店:naturum
2016/08/07 全球购物
先进个人事迹材料
2014/12/29 职场文书
库房管理员岗位职责
2015/02/12 职场文书
反腐倡廉心得体会2016
2016/01/13 职场文书
优秀乡村医生事迹材料(2016精选版)
2016/02/29 职场文书
vue首次渲染全过程
2021/04/21 Vue.js
Vue操作Storage本地化存储
2022/04/29 Vue.js