浅析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 写文本日志实现代码
May 18 PHP
PHP中通过HTTP_USER_AGENT判断是否为手机移动终端的函数代码
Feb 14 PHP
利用PHP+JS实现搜索自动提示(实例)
Jun 09 PHP
php缓冲输出实例分析
Jan 05 PHP
php版微信小店API二次开发及使用示例
Nov 12 PHP
php生成条形码的图片的实例详解
Sep 13 PHP
PHP设计模式之原型模式定义与用法详解
Apr 03 PHP
Laravel模型间关系设置分表的方法示例
Apr 21 PHP
PHP实现打包zip并下载功能
Jun 12 PHP
PHP利用DWZ.CN服务生成短网址
Aug 11 PHP
php中关于换行的实例写法
Sep 26 PHP
PHP使用JpGraph绘制折线图操作示例【附源码下载】
Oct 18 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使用flock实现文件加锁的方法
2015/07/01 PHP
JavaScript的常见兼容问题及相关解决方法(chrome/IE/firefox)
2013/12/31 Javascript
jQuery移除元素自动解绑事件实现思路及代码
2014/05/31 Javascript
5款JavaScript代码压缩工具推荐
2014/07/07 Javascript
javascript验证邮件地址和MX记录的方法
2015/06/16 Javascript
JavaScript的jQuery库中function的存在和参数问题
2015/08/13 Javascript
jQuery实现的多级下拉菜单效果代码
2015/08/24 Javascript
javascript常用函数(2)
2015/11/05 Javascript
JavaScript获取页面中超链接数量的方法
2015/11/09 Javascript
javascript自动恢复文本框点击清除后的默认文本
2016/01/12 Javascript
jQuery简单实现提交数据出现loading进度条的方法
2016/03/29 Javascript
jQuery实现点击查看大图并以弹框的形式居中
2016/08/08 Javascript
js获取当前页的URL与window.location.href简单方法
2017/02/13 Javascript
详解Vuex中mapState的具体用法
2017/09/28 Javascript
jQuery解析json格式数据示例
2018/09/01 jQuery
Vue项目实现换肤功能的一种方案分析
2019/08/28 Javascript
微信小程序使用自定义组件导航实现当前页面高亮
2020/01/02 Javascript
javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法
2020/05/14 Javascript
[20:57]Ti4主赛事第三天开幕式
2014/07/21 DOTA
web.py获取上传文件名的正确方法
2014/08/26 Python
Python实现模拟登录及表单提交的方法
2015/07/25 Python
Python魔法方法详解
2019/02/13 Python
python实现kNN算法识别手写体数字的示例代码
2019/08/16 Python
Python logging日志库空间不足问题解决
2020/09/14 Python
如何基于Python和Flask编写Prometheus监控
2020/11/25 Python
利用CSS3实现开门效果实例源码
2016/08/22 HTML / CSS
RentCars.com巴西:汽车租赁网站
2016/08/22 全球购物
北卡罗来纳州豪华家具和家居装饰店:Carolina Rustica
2018/10/30 全球购物
英国家居装饰品、户外家具和玻璃器皿购物网站:Rinkit.com
2019/11/04 全球购物
捷科时代的软件测试笔试题
2015/11/09 面试题
关于青春的演讲稿
2014/05/05 职场文书
员工加薪申请报告
2015/05/15 职场文书
民主生活会主持词
2015/07/01 职场文书
微信小程序scroll-view不能左右滑动问题的解决方法
2021/07/09 Javascript
Java后台生成图片的完整步骤
2021/08/04 Java/Android
Win11 Build 25179预览版发布(附更新内容+ISO官方镜像下载)
2022/08/14 数码科技