浅析PHP递归函数返回值使用方法


Posted in PHP onFebruary 18, 2013

PHP经过长时间的发展,很多用户都很了解PHP了,PHP最初是1994年Rasmus Lerdorf创建的,刚刚开始只是一个简单的用Perl语言编写的程序,用来统计他自己网站的访问者。后来又用C语言重新编写,包括可以访问数据库。

在 1995年以Personal Home Page Tools (PHP Tools) 开始对外发表第一个版本,Lerdorf写了一些介绍此程序的文档,并且发布了PHP1.0。在这早期的版本中,提供了访客留言本、访客计数器等简单的功 能。以后越来越多的网站使用了PHP,并且强烈要求增加一些特性,比如循环语句和数组变量等等,在新的成员加入开发行列之后,在1995年 中,PHP2.0发布了。第二版定名为PHP/FI(Form Interpreter)。PHP/FI加入了对mSQL的支持,从此建立了PHP在动态网页开发上的地位。到了1996年底,有15000个网站使用 PHP/FI;时间到了1997年中,使用PHP/FI的网站数字超过五万个。而在1997年中,开始了第三版的开发计划,开发小组加入了 Zeev Suraski 及 Andi Gutmans,而第三版就定名为PHP3。2000年,PHP4.0又问世了,其中增加了许多新的特性。

在我的之前的编程中遇到了一个PHP递归函数的问题,其实是一个很简单的问题。问题出在PHP递归函数的返回值上。这是开始写的:

<?php 
functiontest($i) 
{  
$i-=4;  if($i<3) 
{
return$i; 
}  
else 
{  
test($i); 
}   
}   
echotest(30);  
?>

这段代码看起来没有问题,其实有else里面是有问题的。在这里执行的test没有返回值。所以虽然满足条件$i<3时return$i整个函数还是不会返回值的。对上面的PHP递归函数做如下修改:
<?php 
functiontest($i)
{  
$i-=4;  if($i<3)  
{  
return$i;  
}  
else  
{  
returntest($i);//增加return,让函数返回值  
}  
}   
echotest(30);  
?>
PHP 相关文章推荐
国内php原创论坛
Oct 09 PHP
如何在PHP中使用Oracle数据库(2)
Oct 09 PHP
写出高质量的PHP程序
Feb 04 PHP
ASP和PHP实现生成网站快捷方式并下载到桌面的方法
May 08 PHP
php检测图片主要颜色的方法
Jul 01 PHP
PHP生成树的方法
Jul 28 PHP
完美解决phpdoc导出文档中@package的warning及Error的错误
May 17 PHP
PHP身份证校验码计算方法
Aug 10 PHP
Yii框架弹出框功能示例
Jan 07 PHP
PHP实现的MD5结合RSA签名算法实例
Oct 07 PHP
php利用云片网实现短信验证码功能的示例代码
Nov 18 PHP
PHP开发api接口安全验证操作实例详解
Mar 26 PHP
phpadmin如何导入导出大数据文件及php.ini参数修改
Feb 18 #PHP
php添加文章时生成静态HTML文章的实现代码
Feb 17 #PHP
php中flush()、ob_flush()、ob_end_flush()的区别介绍
Feb 17 #PHP
php去除换行符的方法小结(PHP_EOL变量的使用)
Feb 16 #PHP
PHP 获取文件路径(灵活应用__FILE__)
Feb 15 #PHP
php设计模式小结
Feb 15 #PHP
php安全开发 添加随机字符串验证,防止伪造跨站请求
Feb 14 #PHP
You might like
逆序二维数组插入一元素的php代码
2012/06/08 PHP
PHP cdata 处理(详细介绍)
2013/07/05 PHP
本地计算机无法启动Apache故障处理
2014/08/08 PHP
php实现SAE上使用storage上传与下载文件的方法
2015/06/29 PHP
Knockout自定义绑定创建方法
2015/12/26 Javascript
基于jQuery实现点击弹出层实例代码
2016/01/01 Javascript
JS针对Array的各种操作汇总
2016/11/29 Javascript
JavaScript奇技淫巧44招【实用】
2016/12/11 Javascript
Vue自定义指令拖拽功能示例
2017/02/17 Javascript
JavaScript数据结构之二叉树的查找算法示例
2017/04/13 Javascript
详解基于vue-cli3.0如何构建功能完善的前端架子
2018/10/09 Javascript
javascript设计模式 ? 外观模式原理与用法实例分析
2020/04/15 Javascript
浅谈vue中resetFields()使用注意事项
2020/08/12 Javascript
微信小程序组件生命周期的踩坑记录
2021/03/03 Javascript
[44:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第二局
2016/03/03 DOTA
python互斥锁、加锁、同步机制、异步通信知识总结
2018/02/11 Python
关于python2 csv写入空白行的问题
2018/06/22 Python
Python使用ConfigParser模块操作配置文件的方法
2018/06/29 Python
Python替换月份为英文缩写的实现方法
2019/07/15 Python
python opencv调用笔记本摄像头
2019/08/28 Python
python实现的按要求生成手机号功能示例
2019/10/08 Python
详解python中eval函数的作用
2019/10/22 Python
python编写计算器功能
2019/10/25 Python
python 截取XML中bndbox的坐标中的图像,另存为jpg的实例
2020/03/10 Python
PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)的步骤详解
2020/11/02 Python
HTML5的结构和语义(2):结构
2008/10/17 HTML / CSS
实例讲解利用HTML5 Canvas API操作图形旋转的方法
2016/03/22 HTML / CSS
BIBLOO波兰:捷克的一家在线服装店
2018/03/09 全球购物
Happy Socks英国官网:购买五颜六色的袜子
2020/11/03 全球购物
Tessabit美国:集世界奢侈品和设计师品牌的意大利精品买手店
2020/06/29 全球购物
门诊手术室工作制度
2014/01/30 职场文书
挂职自我鉴定
2014/02/26 职场文书
陈安之励志演讲稿
2014/08/21 职场文书
民主评议教师党员自我评价
2015/03/04 职场文书
教师求职自荐信
2015/03/26 职场文书
体育部部长竞选稿
2015/11/21 职场文书