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 相关文章推荐
linux下 C语言对 php 扩展
Dec 14 PHP
PHP PDO函数库详解
Apr 27 PHP
php下用cookie统计用户访问网页次数的代码
May 09 PHP
php数组函数序列 之shuffle()和array_rand() 随机函数使用介绍
Oct 29 PHP
PHP实现通过中文字符比率来判断垃圾评论的方法
Oct 20 PHP
php多次include后导致全局变量global失效的解决方法
Feb 28 PHP
php实现的IMEI限制的短信验证码发送类
May 05 PHP
PHP获取input输入框中的值去数据库比较显示出来
Nov 16 PHP
PHP 7.1新特性的汇总介绍
Dec 16 PHP
Yii框架实现图片上传的方法详解
May 20 PHP
PHP实现微信对账单处理
Oct 01 PHP
Laravel实现搜索的时候分页并携带参数
Oct 15 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
vBulletin HACK----关于排版的两个HACK
2006/10/09 PHP
PHP5中虚函数的实现方法分享
2011/04/20 PHP
php的一个简单加密解密代码
2014/01/14 PHP
Yii2创建控制器(createController)方法详解
2016/07/23 PHP
php正则修正符用法实例详解
2016/12/29 PHP
使用jQuery Ajax功能时需要注意的一个问题(内存溢出)
2012/05/30 Javascript
动态加载script文件的两种方法
2013/08/15 Javascript
jq实现酷炫的鼠标经过图片翻滚效果
2014/03/12 Javascript
JavaScript二维数组实现的省市联动菜单
2014/05/08 Javascript
js实现class样式的修改、添加及删除的方法
2015/01/20 Javascript
jquery实现选中单选按钮下拉伸缩效果
2015/08/06 Javascript
使用Ajax与服务器(JSON)通信实例
2016/11/04 Javascript
BootStrap便签页的简单应用
2017/01/06 Javascript
js实现产品缩略图效果
2017/03/10 Javascript
微信小程序本地缓存数据增删改查实例详解
2017/05/24 Javascript
vue音乐播放器插件vue-aplayer的配置及其使用实例详解
2017/07/10 Javascript
vue数据传递--我有特殊的实现技巧
2018/03/20 Javascript
Nodejs libuv运行原理详解
2019/08/21 NodeJs
node.js中stream流中可读流和可写流的实现与使用方法实例分析
2020/02/13 Javascript
jQuery事件模型默认行为执行顺序及trigger()与 triggerHandler()比较实例分析
2020/04/30 jQuery
JavaScript读取本地文件常用方法流程解析
2020/10/12 Javascript
Nuxt的动态路由和参数校验操作
2020/11/09 Javascript
[01:08:10]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS LGD-CDEC
2014/05/22 DOTA
python继承和抽象类的实现方法
2015/01/14 Python
利用python爬取散文网的文章实例教程
2017/06/18 Python
python中 chr unichr ord函数的实例详解
2017/08/06 Python
快速解决PyCharm无法引用matplotlib的问题
2018/05/24 Python
python清除字符串前后空格函数的方法
2018/10/21 Python
python pyheatmap包绘制热力图
2018/11/09 Python
基于PyQt4和PySide实现输入对话框效果
2019/02/27 Python
澳大利亚家具和家居用品在线:BROSA
2017/11/02 全球购物
青安岗事迹材料
2014/05/14 职场文书
公司户外活动总结
2014/07/04 职场文书
高考百日冲刺决心书
2015/09/23 职场文书
MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函数的使用详解
2021/06/26 MySQL
基于Pygame实现简单的贪吃蛇游戏
2021/12/06 Python