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如何得到当前页和上一页的地址?
Nov 27 PHP
php设计模式 Prototype (原型模式)代码
Jun 26 PHP
php网上商城购物车设计代码分享
Feb 15 PHP
php调用方法mssql_fetch_row、mssql_fetch_array、mssql_fetch_assoc和mssql_fetch_objcect读取数据的区别
Aug 08 PHP
php获取从百度搜索进入网站的关键词的详细代码
Jan 08 PHP
php中自定义函数dump查看数组信息类似var_dump
Jan 27 PHP
php汉字转拼音的示例
Feb 27 PHP
PHP return语句的另一个作用
Jul 30 PHP
php动态生成缩略图并输出显示的方法
Apr 20 PHP
PHP生成条形码大揭秘
Sep 24 PHP
PHP登录验证码的实现与使用方法
Jul 07 PHP
PHP命名空间与自动加载机制的基础介绍
Aug 25 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 加密解密内部算法
2010/04/22 PHP
php使用websocket示例详解
2014/03/12 PHP
PHP对文件夹递归执行chmod命令的方法
2015/06/19 PHP
PHP生成随机密码4种方法及性能对比
2020/12/11 PHP
读jQuery之十 事件模块概述
2011/06/27 Javascript
UI Events 用户界面事件
2012/06/27 Javascript
文本框只能选择数据到文本框禁止手动输入
2013/11/22 Javascript
jQuery调取jSon数据并展示的方法
2015/01/29 Javascript
JavaScript生成随机数的4种自定义函数分享
2015/02/28 Javascript
jquery简单实现网页层的展开与收缩效果
2015/08/07 Javascript
js实现文本框支持加减运算的方法
2015/08/19 Javascript
浅析JavaScript中的平稳退化(graceful degradation)
2017/07/24 Javascript
基于jquery实现多选下拉列表
2017/08/02 jQuery
基于vue通用表单解决方案的思考与分析
2019/03/16 Javascript
JSON是什么?有哪些优点?JSON和XML的区别?
2019/04/29 Javascript
node.js实现上传文件功能
2019/07/15 Javascript
SSM+layUI 根据登录信息显示不同的页面方法
2019/09/20 Javascript
webstorm建立vue-cli脚手架的傻瓜式教程
2020/09/22 Javascript
[01:01:14]完美世界DOTA2联赛PWL S2 SZ vs Rebirth 第一场 11.21
2020/11/23 DOTA
Python实现线程池代码分享
2015/06/21 Python
浅谈使用Python变量时要避免的3个错误
2017/10/30 Python
Django文件存储 默认存储系统解析
2019/08/02 Python
Python实现代码统计工具
2019/09/19 Python
python使用scapy模块实现ARP扫描的过程
2021/01/21 Python
matplotlib之pyplot模块坐标轴标签设置使用(xlabel()、ylabel())
2021/02/22 Python
欧舒丹比利时官网:L’OCCITANE比利时
2017/04/25 全球购物
美国高级音响品牌:Master&Dynamic
2018/07/05 全球购物
Pop In A Box英国:Funko POP搪胶公仔
2019/05/27 全球购物
航空大学应届生求职信
2013/11/10 职场文书
手工社团活动方案
2014/02/17 职场文书
投资意向书范本
2014/04/01 职场文书
体育口号大全
2014/06/18 职场文书
春节晚会开场白
2015/05/29 职场文书
2016幼儿园中班开学寄语
2015/12/03 职场文书
Python基础之字符串格式化详解
2021/04/21 Python
Go 自定义package包设置与导入操作
2021/05/06 Golang