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邮件类
Jan 03 PHP
php 将字符串按大写字母分隔成字符串数组
Apr 30 PHP
PHP 多维数组排序(usort,uasort)
Jun 30 PHP
php中函数的形参与实参的问题说明
Sep 01 PHP
PHP如何抛出异常处理错误
Mar 02 PHP
9个PHP开发常用功能函数小结
Jul 15 PHP
浅析php工厂模式
Nov 25 PHP
thinkphp的静态缓存用法分析
Nov 29 PHP
thinkphp实现163、QQ邮箱收发邮件的方法
Dec 18 PHP
PHP目录与文件操作技巧总结(创建,删除,遍历,读写,修改等)
Sep 11 PHP
使用PHPUnit进行单元测试并生成代码覆盖率报告的方法
Mar 08 PHP
PHP token验证生成原理实例分析
Jun 05 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
超强分页类2.0发布,支持自定义风格,默认4种显示模式
2007/01/02 PHP
PHP与C#分别格式化文件大小的代码
2011/05/14 PHP
Could not load type System.ServiceModel.Activation.HttpModule解决办法
2012/12/29 PHP
php cli模式学习(PHP命令行模式)
2013/06/03 PHP
PHP请求远程地址设置超时时间的解决方法
2016/10/29 PHP
jQuery 开天辟地入门篇一
2009/12/09 Javascript
Javascript学习笔记之相等符号与严格相等符号
2014/11/23 Javascript
js选项卡的实现方法
2015/02/09 Javascript
JavaScript电子时钟倒计时第二款
2016/01/10 Javascript
使用JavaScript为Kindeditor自定义按钮增加Audio标签
2016/03/18 Javascript
javascript简易画板开发
2020/04/12 Javascript
JavaScript trim 实现去除字符串首尾指定字符的简单方法
2016/12/27 Javascript
Jquery实时监听input value的实例
2017/01/26 Javascript
Bootstrap 3 按钮标签实例代码
2017/02/21 Javascript
Vue实现typeahead组件功能(非常靠谱)
2017/08/26 Javascript
React学习之事件绑定的几种方法对比
2017/09/24 Javascript
layui问题之渲染数据表格时,仅出现10条数据的解决方法
2019/09/12 Javascript
VUE:vuex 用户登录信息的数据写入与获取方式
2019/11/11 Javascript
node.js开发辅助工具nodemon安装与配置详解
2020/02/06 Javascript
element-ui 实现响应式导航栏的示例代码
2020/05/08 Javascript
Python入门及进阶笔记 Python 内置函数小结
2014/08/09 Python
numpy.linspace 生成等差数组的方法
2018/07/02 Python
python实现大量图片重命名
2020/03/23 Python
python实现文法左递归的消除方法
2020/05/22 Python
前端实现弹幕效果的方法总结(包含css3和canvas的实现方式)
2018/07/12 HTML / CSS
德国旅游网站:weg.de
2018/06/03 全球购物
美国在线家居装饰店:Belle&June
2018/10/24 全球购物
女士和男士时尚鞋在线购物:Shoespie
2019/02/28 全球购物
文秘专业个人求职信
2013/12/22 职场文书
领导证婚人证婚词
2014/01/13 职场文书
优秀小学生家长评语
2014/01/30 职场文书
教师求职自荐书
2014/06/14 职场文书
巾帼志愿者活动方案
2014/08/17 职场文书
国企干部对照检查材料
2014/08/22 职场文书
连锁超市项目计划书
2014/09/15 职场文书
电影建党伟业观后感
2015/06/01 职场文书