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 相关文章推荐
实用函数9
Nov 08 PHP
PHP数组遍历知识汇总(包含遍历方法、数组指针操作函数、数组遍历测速)
Jul 05 PHP
php事务处理实例详解
Jul 11 PHP
PHP SPL标准库之数据结构堆(SplHeap)简单使用实例
May 12 PHP
php实现比较两个文件夹异同的方法
Jun 18 PHP
PHP实现图片自动清理的方法
Jul 08 PHP
PHP附件下载中文名称乱码的解决方法
Dec 17 PHP
Laravel中间件实现原理详解
Oct 09 PHP
Discuz论坛密码与密保加密规则
Dec 19 PHP
PHP使用DOM和simplexml读取xml文档的方法示例
Feb 08 PHP
PHP中Trait及其应用详解
Feb 14 PHP
PDO::exec讲解
Jan 28 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
攻克CakePHP系列三 表单数据增删改
2008/10/22 PHP
通过JavaScript或PHP检测Android设备的代码
2011/03/09 PHP
5种PHP创建数组的实例代码分享
2014/01/17 PHP
php实现字符串翻转的方法
2015/03/27 PHP
详解PHP中的状态模式编程
2015/08/11 PHP
PHP关键特性之命名空间实例详解
2017/05/06 PHP
PHP实现时间比较和时间差计算的方法示例
2017/07/24 PHP
jQuery EasyUI API 中文文档 - ValidateBox验证框
2011/10/06 Javascript
jquery 操作两个select实现值之间的互相传递
2014/03/07 Javascript
jquery淡化版banner异步图片文字效果切换图片特效
2014/04/08 Javascript
详解vue 中使用 AJAX获取数据的方法
2017/01/18 Javascript
JS中setTimeout和setInterval的最大延时值详解
2017/02/13 Javascript
走进AngularJs之过滤器(filter)详解
2017/02/17 Javascript
关于JavaScript中的this指向问题总结篇
2017/07/23 Javascript
vue页面使用阿里oss上传功能的实例(一)
2017/08/09 Javascript
BootStrap实现文件上传并带有进度条效果
2017/09/11 Javascript
JavaScript执行环境及作用域链实例分析
2018/08/01 Javascript
使用JavaScript实现node.js中的path.join方法
2018/08/12 Javascript
JavaScript遍历查找数组中最大值与最小值的方法示例
2019/05/24 Javascript
vue组件命名和props命名代码详解
2019/09/01 Javascript
微信sdk实现禁止微信分享(使用原生php实现)
2019/11/15 Javascript
JSONObject与JSONArray使用方法解析
2020/09/28 Javascript
JavaScript 异步时序问题
2020/11/20 Javascript
Python enumerate遍历数组示例应用
2008/09/06 Python
python 字典(dict)遍历的四种方法性能测试报告
2014/06/25 Python
将Django使用的数据库从MySQL迁移到PostgreSQL的教程
2015/04/11 Python
python实现图片彩色转化为素描
2019/01/15 Python
Django分页功能的实现代码详解
2019/07/29 Python
PyCharm 专业版安装图文教程
2020/02/20 Python
keras实现多种分类网络的方式
2020/06/11 Python
ubuntu16.04升级Python3.5到Python3.7的方法步骤
2020/08/20 Python
电子商务专业学生职业生涯规划
2014/03/07 职场文书
2014年工商所工作总结
2014/12/09 职场文书
教师调动申请报告
2015/05/18 职场文书
关于考试抄袭的检讨书
2019/11/02 职场文书
不负正版帝国之名 《重返帝国》引领SLG手游制作新的标杆
2022/04/07 其他游戏