浅析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与SQL注入攻击[二]
Apr 17 PHP
php 数组二分法查找函数代码
Feb 16 PHP
PHP合并数组+与array_merge的区别分析
Aug 01 PHP
关于PHP递归算法和应用方法介绍
Apr 15 PHP
PHP把网页保存为word文件的三种方法
Apr 01 PHP
PHP生成自适应大小的缩略图类及使用方法分享
May 06 PHP
跟我学Laravel之安装Laravel
Oct 15 PHP
php生成xml时添加CDATA标签的方法
Oct 17 PHP
PHP文件锁函数flock()详细介绍
Nov 18 PHP
PHP中is_dir()函数使用指南
May 08 PHP
php下的原生ajax请求用法实例分析
Feb 28 PHP
详解PHP中curl_multi并发的实现
Jun 08 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
event.keyCode键码值表 附只能输入特定的字符串代码
2009/05/15 Javascript
jQuery侧边栏随窗口滚动实现方法
2013/03/04 Javascript
Jquery实现页面加载时弹出对话框代码
2013/04/19 Javascript
Javascript拓展String方法小结
2013/07/08 Javascript
JS、CSS以及img对DOMContentLoaded事件的影响
2014/08/12 Javascript
CSS3,HTML5和jQuery搜索框集锦
2014/12/02 Javascript
兼容Firefox的Javascript XSLT 处理XML文件
2014/12/31 Javascript
JS实现CheckBox复选框全选全不选功能
2015/05/06 Javascript
KnockoutJS 3.X API 第四章之事件event绑定
2016/10/10 Javascript
js时间查询插件使用详解
2017/04/07 Javascript
微信小程序商城项目之侧栏分类效果(1)
2017/04/17 Javascript
简单谈谈require模块化jquery和angular的问题
2017/06/23 jQuery
JS根据json数组多个字段排序及json数组常用操作
2019/06/06 Javascript
jQuery HTML获取内容和属性操作实例分析
2020/05/20 jQuery
vue递归获取父元素的元素实例
2020/08/07 Javascript
Python使用百度API上传文件到百度网盘代码分享
2014/11/08 Python
星球大战与Python之间的那些事
2016/01/07 Python
python中WSGI是什么,Python应用WSGI详解
2017/11/24 Python
python安装模块如何通过setup.py安装(超简单)
2018/05/05 Python
对python数据切割归并算法的实例讲解
2018/12/12 Python
python gensim使用word2vec词向量处理中文语料的方法
2019/07/05 Python
python数据类型之间怎么转换技巧分享
2019/08/20 Python
Python 实现顺序高斯消元法示例
2019/12/09 Python
django model的update时auto_now不被更新的原因及解决方式
2020/04/01 Python
python db类用法说明
2020/07/07 Python
html5组织文档结构_动力节点Java学院整理
2017/07/11 HTML / CSS
HTML5 Web缓存和运用程序缓存(cookie,session)
2018/01/11 HTML / CSS
英国No.1体育用品零售商:SportsDirect.com
2019/10/16 全球购物
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?
2016/08/18 面试题
公司培训心得体会
2014/01/03 职场文书
党课知识竞赛主持词
2014/04/01 职场文书
国旗下讲话演讲稿
2014/05/08 职场文书
python 进阶学习之python装饰器小结
2021/09/04 Python
php访问对象中的成员的实例方法
2021/11/17 PHP
Python Django项目和应用的创建详解
2021/11/27 Python
HTML5基础学习之文本标签控制
2022/03/25 HTML / CSS