浅析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语句的写法
Mar 10 PHP
基于header的一些常用指令详解
Jun 06 PHP
phpmailer发送gmail邮件实例详解
Jun 24 PHP
PHP怎么实现网站保存快捷方式方便用户随时浏览
Aug 15 PHP
destoon二次开发入门示例
Jun 20 PHP
php绘制一个矩形的方法
Jan 24 PHP
php实现文本数据导入SQL SERVER
May 17 PHP
PHP数组与对象之间使用递归实现转换的方法
Jun 24 PHP
PHP超全局数组(Superglobals)介绍
Jul 01 PHP
thinkphp中U方法按路由规则生成url的方法
Mar 12 PHP
php精度计算的问题解析
Jun 21 PHP
php计数排序算法的实现代码(附四个实例代码)
Mar 31 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
论坛头像随机变换代码
2006/10/09 PHP
坏狼的PHP学习教程之第2天
2008/06/15 PHP
php 中英文语言转换类代码
2011/08/11 PHP
php中将字符串转为HTML的实体引用的一个类
2013/02/03 PHP
PHP实现APP微信支付的实例讲解
2018/02/10 PHP
PHP filter_var() 函数, 验证判断EMAIL,URL等
2021/03/09 PHP
ExtJS Ext.MessageBox.alert()弹出对话框详解
2010/04/02 Javascript
Jquery+asp.net后台数据传到前台js进行解析的方法
2014/05/11 Javascript
jquery图片倾斜层叠切换特效代码分享
2015/08/27 Javascript
关于JavaScript 原型链的一点个人理解
2016/07/31 Javascript
react高阶组件添加和删除props
2019/04/26 Javascript
webpack-mvc 传统多页面组件化开发详解
2019/05/07 Javascript
layer.open回调获取弹出层参数的实现方法
2019/09/10 Javascript
node创建Vue项目步骤详解
2020/03/06 Javascript
python用字典统计单词或汉字词个数示例
2014/04/22 Python
python实现unicode转中文及转换默认编码的方法
2017/04/29 Python
ubuntu安装sublime3并配置python3环境的方法
2018/03/15 Python
Php多进程实现代码
2018/05/07 Python
python3个性签名设计实现代码
2018/06/19 Python
Python实现的序列化和反序列化二叉树算法示例
2019/03/02 Python
Python笔记之工厂模式
2019/11/20 Python
python将数组n等分的实例
2019/12/02 Python
Ubuntu18.04安装 PyCharm并使用 Anaconda 管理的Python环境
2020/04/08 Python
Python3如何实现Win10桌面自动切换
2020/08/11 Python
CSS3模拟动画下拉菜单效果
2017/04/12 HTML / CSS
俄罗斯大型在线书店:Читай-город
2019/10/10 全球购物
DBA的职责都有哪些
2012/05/16 面试题
文秘自荐信
2013/10/20 职场文书
火锅店创业计划书范文
2014/02/02 职场文书
护士岗位职责
2014/02/16 职场文书
喜之郎果冻广告词
2014/03/20 职场文书
经典的毕业生自荐信范文
2014/04/14 职场文书
2015年毕业生自我鉴定模板
2014/09/19 职场文书
机关作风建设整改方案
2014/10/27 职场文书
个人整改措施落实情况汇报
2014/10/29 职场文书
Nginx反向代理至go-fastdfs案例讲解
2021/08/02 Servers