浅析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 相关文章推荐
phpmyadmin的#1251问题
Nov 25 PHP
apache rewrite_module模块使用教程
Jan 10 PHP
php使用Smarty的相关注意事项及访问变量的几种方式
Dec 08 PHP
PHP实现利用MySQL保存session的方法
Aug 23 PHP
PHP+MySQL插入操作实例
Jan 21 PHP
php上传文件并显示上传进度的方法
Mar 24 PHP
php实现模拟post请求用法实例
Jul 11 PHP
PHP使用fopen与file_get_contents读取文件实例分享
Mar 04 PHP
PHP网站自动化配置的实现方法(必看)
May 27 PHP
PHP手机号中间四位用星号*代替显示的实例
Jun 02 PHP
PHPTree――php快速生成无限级分类
Mar 30 PHP
Laravel 自动转换长整型雪花 ID 为字符串的实现
Oct 27 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多态的实现详解
2013/06/09 PHP
php中并发读写文件冲突的解决方案
2013/10/25 PHP
PHP时间相关常用函数用法示例
2020/06/03 PHP
IE和firefox浏览器的event事件兼容性汇总
2009/12/06 Javascript
javascript 导出数据到Excel(处理table中的元素)
2009/12/18 Javascript
js动态给table添加/删除tr的方法
2013/08/02 Javascript
表格奇偶行设置不同颜色的核心JS代码
2013/12/24 Javascript
jQuery简单实现banner图片切换
2014/01/02 Javascript
JavaScript学习笔记(三):JavaScript也有入口Main函数
2015/09/12 Javascript
Jquery修改image的src属性,图片不加载问题的解决方法
2016/05/17 Javascript
Vue.use源码分析
2017/04/22 Javascript
JS与HTML结合实现流程进度展示条思路详解
2017/09/03 Javascript
JavaScript设计模式之构造函数模式实例教程
2018/07/02 Javascript
JavaScript中常用的简洁高级技巧总结
2019/03/10 Javascript
原生javascript自定义input[type=radio]效果示例
2019/08/27 Javascript
vuex 多模块时 模块内部的mutation和action的调用方式
2020/07/24 Javascript
python实现按任意键继续执行程序
2016/12/30 Python
pybind11和numpy进行交互的方法
2019/07/04 Python
Django框架反向解析操作详解
2019/11/28 Python
Python接口测试环境搭建过程详解
2020/06/29 Python
CSS3 实现footer 固定在底部(无论页面多高始终在底部)
2019/10/15 HTML / CSS
乌克兰时尚鞋子和衣服购物网站:Born2be
2018/05/24 全球购物
美国家居用品和厨具购物网站:DealsDot
2019/10/07 全球购物
描述RIP和OSPF区别以及特点
2015/01/17 面试题
大学生求职推荐信
2013/11/27 职场文书
大学四年学习的自我评价分享
2013/12/09 职场文书
土建资料员岗位职责
2014/01/04 职场文书
《愚公移山》教学反思
2014/02/20 职场文书
学生评语大全
2014/04/18 职场文书
个人思想政治总结
2015/03/05 职场文书
2015年行政助理工作总结
2015/04/30 职场文书
战友聚会致辞
2015/07/28 职场文书
2016大学迎新晚会开场白
2015/11/24 职场文书
golang switch语句的灵活写法介绍
2021/05/06 Golang
SpringRetry重试框架的具体使用
2021/07/25 Java/Android
基于MySql验证的vsftpd虚拟用户
2021/11/07 MySQL