浅析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 相关文章推荐
smtp邮件发送一例
Oct 09 PHP
在PHP中使用模板的方法
May 24 PHP
发款php蜘蛛统计插件只要有mysql就可用
Oct 12 PHP
PHP学习笔记之一
Jan 17 PHP
php 定界符格式引起的错误
May 24 PHP
PHP设计模式之装饰者模式
Feb 29 PHP
php生成zip压缩文件的方法详解
Jun 09 PHP
ThinkPHP的MVC开发机制实例解析
Aug 23 PHP
使用php方法curl抓取AJAX异步内容思路分析及代码分享
Aug 25 PHP
ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单实现方法
Jun 09 PHP
PHP开发实现微信退款功能示例
Nov 25 PHP
PHP读取并输出XML文件数据的简单实现方法
Dec 22 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安装问题
2006/10/09 PHP
apache2.2.4+mysql5.0.77+php5.2.8安装精简
2009/04/29 PHP
PHP中使用数组实现堆栈数据结构的代码
2012/02/05 PHP
Linux下实现PHP多进程的方法分享
2012/08/16 PHP
PHP APC缓存配置、使用详解
2014/03/06 PHP
php检测文件编码的方法示例
2014/04/25 PHP
php文件上传 你真的掌握了吗
2016/11/28 PHP
PHP+Apache环境中如何隐藏Apache版本
2017/11/24 PHP
php实现文章评论系统
2019/02/18 PHP
js监听表单value的修改同步问题,跨浏览器支持
2009/12/31 Javascript
Document对象内容集合(比较全)
2010/09/06 Javascript
二叉树先序遍历的非递归算法具体实现
2014/01/09 Javascript
JavaScript获取XML数据附示例截图
2014/03/05 Javascript
JavaScript实现自动消除按钮功能的方法
2015/08/05 Javascript
详解如何使用vue-cli脚手架搭建Vue.js项目
2017/05/19 Javascript
vue移动端实现下拉刷新
2018/04/22 Javascript
详解如何在Javascript和Sass之间共享变量
2019/11/13 Javascript
django表单实现下拉框的示例讲解
2018/05/29 Python
python的pip安装以及使用教程
2018/09/18 Python
python并发和异步编程实例
2018/11/15 Python
Python2和Python3之间的str处理方式导致乱码的讲解
2019/01/03 Python
python实现WebSocket服务端过程解析
2019/10/18 Python
python读取tif图片时保留其16bit的编码格式实例
2020/01/13 Python
Jupyter notebook 远程配置及SSL加密教程
2020/04/14 Python
Python基于smtplib协议实现发送邮件
2020/06/03 Python
澳大利亚婴儿礼品公司:The Baby Gift Company
2018/11/04 全球购物
Laura Geller官网:美国彩妆品牌
2018/12/29 全球购物
Beach Bunny Swimwear官网:设计师泳装和性感比基尼
2019/03/13 全球购物
青年志愿者活动总结
2014/04/26 职场文书
医德医风自我评价
2014/09/19 职场文书
师德师风个人自我剖析材料
2014/09/27 职场文书
2015年信访维稳工作总结
2015/04/07 职场文书
2016年秋季运动会广播稿
2015/12/21 职场文书
高中数学教学反思范文
2016/02/18 职场文书
Python Matplotlib绘制条形图的全过程
2021/10/24 Python
python使用torch随机初始化参数
2022/03/22 Python