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中创建并处理图象
Oct 09 PHP
php学习 函数 课件
Jun 15 PHP
php中echo()和print()、require()和include()等易混淆函数的区别
Feb 22 PHP
基于PHP+Ajax实现表单验证的详解
Jun 25 PHP
php 注册时输入信息验证器的实现详解
Jul 05 PHP
php实现图形显示Ip地址的代码及注释
Jan 20 PHP
php定时计划任务与fsockopen持续进程实例
May 23 PHP
ThinkPHP模板范围判断输出In标签与Range标签用法详解
Jun 30 PHP
php编程中echo用逗号和用点号连接的区别
Mar 26 PHP
yii的入口文件index.php中为什么会有这两句
Aug 04 PHP
Laravel中获取路由参数Route Parameters的五种方法示例
Sep 29 PHP
phpinfo无法显示的原因及解决办法
Feb 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
php读取文件内容到数组的方法
2015/03/16 PHP
php实现遍历多维数组的方法
2015/11/25 PHP
php中照片旋转 (orientation) 问题的正确处理
2017/02/16 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
网络图片延迟加载实现代码 超越jquery控件
2010/03/27 Javascript
文本有关的样式和jQuery求对象的高宽问题分别说明
2013/08/30 Javascript
用js替换除数字与逗号以外的所有字符的代码
2014/06/07 Javascript
多个$(document).ready()的执行顺序实例分析
2014/07/26 Javascript
angularJS结合canvas画图例子
2015/02/09 Javascript
学习使用bootstrap3栅格系统
2016/04/12 Javascript
angular中的cookie读写方法
2017/08/02 Javascript
详解vue项目中如何引入全局sass/less变量、function、mixin
2018/06/02 Javascript
element-ui中的select下拉列表设置默认值方法
2018/08/24 Javascript
泛谈JS逻辑判断选择器 || &amp;&amp;
2019/05/24 Javascript
浅谈目前可以使用ES10的5个新特性
2019/06/25 Javascript
Node Mongoose用法详解【Mongoose使用、Schema、对象、model文档等】
2020/05/13 Javascript
JavaScript实现点击图片换背景
2020/11/20 Javascript
[06:45]DOTA2卡尔工作室 英雄介绍幻影长矛手篇
2013/07/12 DOTA
Python的randrange()方法使用教程
2015/05/15 Python
对pycharm代码整体左移和右移缩进快捷键的介绍
2018/07/16 Python
python批量创建指定名称的文件夹
2019/03/21 Python
Python多进程方式抓取基金网站内容的方法分析
2019/06/03 Python
一篇文章搞定Python操作文件与目录
2019/08/13 Python
TensorFlow索引与切片的实现方法
2019/11/20 Python
Python:二维列表下标互换方式(矩阵转置)
2019/12/02 Python
python 实现目录复制的三种小结
2019/12/04 Python
Pycharm 2020年最新激活码(亲测有效)
2020/09/18 Python
CSS3 :nth-child()伪类选择器实现奇偶行显示不同样式
2013/11/05 HTML / CSS
美国知名保健品网站:LuckyVitamin(支持中文)
2017/08/09 全球购物
彪马法国官网:PUMA法国
2019/12/15 全球购物
社区学雷锋活动策划方案
2014/01/30 职场文书
城市精细化管理实施方案
2014/03/04 职场文书
外贸专业求职信
2014/03/09 职场文书
“学雷锋活动月”总结
2014/03/09 职场文书
学党史心得体会
2014/09/05 职场文书
用React Native制作一个简单的游戏引擎
2021/05/27 Javascript