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 相关文章推荐
一个简单的自动发送邮件系统(三)
Oct 09 PHP
PHP 高手之路(一)
Oct 09 PHP
PHP 中的面向对象编程:通向大型 PHP 工程的办法
Dec 03 PHP
mysql limit查询优化分析
Nov 12 PHP
phpmyadmin里面导入sql语句格式的大量数据的方法
Jun 05 PHP
PHP统计目录下的文件总数及代码行数(去除注释及空行)
Jan 17 PHP
解析php中curl_multi的应用
Jul 17 PHP
php实现图形显示Ip地址的代码及注释
Jan 20 PHP
PHP链接MySQL的常用扩展函数
Oct 23 PHP
php微信公众号开发之音乐信息
Oct 20 PHP
PHP的PDO大对象(LOBs)
Jan 27 PHP
PHP之认识(二)关于Traits的用法详解
Apr 11 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
javascript,php获取函数参数对象的代码
2011/02/03 PHP
jquery+thinkphp实现跨域抓取数据的方法
2016/10/15 PHP
PHP用swoole+websocket和redis实现web一对一聊天
2019/11/05 PHP
[原创]站长必须要知道的javascript广告代码
2007/05/30 Javascript
两个listbox实现选项的添加删除和搜索
2013/03/01 Javascript
JS Replace 全部替换字符的用法小结
2013/12/24 Javascript
用javascript关闭本窗口不弹出询问框的方法
2014/09/12 Javascript
js实现单击图片放大图片的方法
2015/02/17 Javascript
JavaScript使表单中的内容显示在屏幕上的方法
2015/06/29 Javascript
JavaScript实现将数组数据添加到Select下拉框的方法
2015/08/21 Javascript
JavaScript与HTML的结合方法详解
2015/11/23 Javascript
Javascript的表单验证-提交表单
2016/03/18 Javascript
nodejs 十六进制字符串型数据与btye型数据相互转换
2018/07/30 NodeJs
分享vue里swiper的一些坑
2018/08/30 Javascript
JavaScript对象拷贝与赋值操作实例分析
2018/12/10 Javascript
vue实现移动端省市区选择
2019/09/27 Javascript
完美解决通过IP地址访问VUE项目的问题
2020/07/18 Javascript
python二分查找算法的递归实现方法
2016/05/12 Python
详解Python中类的定义与使用
2017/04/11 Python
Python编程之列表操作实例详解【创建、使用、更新、删除】
2017/07/22 Python
Python使用getpass库读取密码的示例
2017/10/10 Python
python getpass实现密文实例详解
2019/09/24 Python
django 数据库返回queryset实现封装为字典
2020/05/19 Python
python 常见的反爬虫策略
2020/09/27 Python
python中pyplot基础图标函数整理
2020/11/10 Python
美津浓美国官网:Mizuno美国
2018/08/07 全球购物
匡威西班牙官网:Converse西班牙
2019/10/01 全球购物
母亲节演讲稿范文
2014/01/02 职场文书
2014年大学生就业规划书
2014/04/04 职场文书
让世界充满爱演讲稿
2014/05/24 职场文书
大型演出策划方案
2014/05/28 职场文书
敬老院献爱心活动总结
2014/07/08 职场文书
建国大业观后感
2015/06/01 职场文书
Java方法重载和方法重写的区别到底在哪?
2021/06/11 Java/Android
微软PC Health Check电脑健康状况检查应用下载(Win11配置检测工具)
2021/06/26 数码科技
Python爬虫网络请求之代理服务器和动态Cookies
2022/04/12 Python