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 相关文章推荐
自动把纯文本转换成Web页面的php代码
Aug 27 PHP
PHP SPL使用方法和他的威力
Nov 12 PHP
php获取参数的几种方法总结
Feb 18 PHP
php判断是否为json格式的方法
Mar 04 PHP
php读取mssql的ntext字段返回值为空的解决方法
Dec 30 PHP
详解PHP错误日志的获取方法
Jul 20 PHP
PHP文件管理之实现网盘及压缩包的功能操作
Sep 20 PHP
PHP7扩展开发之hello word实现方法详解
Jan 15 PHP
PHP htmlspecialchars_decode()函数用法讲解
Mar 01 PHP
浅谈PHP中的Trait使用方法
Mar 22 PHP
PHP读取XML文件的方法实例总结【DOMDocument及simplexml方法】
Sep 10 PHP
PHP网页缓存技术优点及代码实例
Jul 29 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函数解决SQL injection
2006/10/09 PHP
Zend Framework开发入门经典教程
2016/03/23 PHP
Windows 下安装 swoole 图文教程(php)
2017/06/05 PHP
prototype 中文参数乱码解决方案
2009/11/09 Javascript
jquery animate图片模向滑动示例代码
2011/01/26 Javascript
用js实现控件的隐藏及style.visibility的使用
2013/06/14 Javascript
jquery.qrcode在线生成二维码使用示例
2013/08/21 Javascript
HTML页面弹出居中可拖拽的自定义窗口层
2014/05/07 Javascript
HTML5 Shiv完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法
2015/11/25 Javascript
使用getBoundingClientRect方法实现简洁的sticky组件的方法
2016/03/22 Javascript
Angular.js实现多个checkbox只能选择一个的方法示例
2017/02/24 Javascript
nodejs微信开发之自动回复的实现
2019/03/17 NodeJs
vue实现短信验证码登录功能(流程详解)
2019/12/10 Javascript
小程序如何定位所在城市及发起周边搜索
2020/02/11 Javascript
微信小程序实现抖音播放效果的实例代码
2020/04/11 Javascript
vue element实现表格合并行数据
2020/11/30 Vue.js
python多线程threading.Lock锁用法实例
2014/11/01 Python
Python正则表达式经典入门教程
2017/05/22 Python
selenium+python 去除启动的黑色cmd窗口方法
2018/05/22 Python
python把ipynb文件转换成pdf文件过程详解
2019/07/09 Python
django基础学习之send_mail功能
2019/08/07 Python
python中os包的用法
2020/06/01 Python
详解如何在PyCharm控制台中输出彩色文字和背景
2020/08/17 Python
详解canvas在圆弧周围绘制文本的两种写法
2018/05/22 HTML / CSS
台湾网购生鲜第一品牌:i3Fresh爱上新鲜
2017/10/26 全球购物
澳大利亚宠物食品和用品商店:PETstock
2020/01/02 全球购物
Java面试题及答案
2012/09/08 面试题
如何高效率的查找一个月以内的数据
2012/04/15 面试题
介绍一下gcc特性
2012/01/20 面试题
一份创业计划书范文
2014/02/08 职场文书
应届毕业生求职信范文
2014/07/07 职场文书
银行业务授权委托书
2014/10/10 职场文书
大学生自荐信范文
2015/03/05 职场文书
2015年医务科工作总结范文
2015/05/26 职场文书
运动会开幕式主持词
2015/07/01 职场文书
MySQL分区路径子分区再分区
2022/04/13 MySQL