浅析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 相关文章推荐
一个程序下载的管理程序(四)
Oct 09 PHP
php环境配置 php5 MySQL5 apache2 phpmyadmin安装与配置图文教程
Mar 16 PHP
PHP EOT定界符的使用详解
Sep 30 PHP
php打开远程文件的方法和风险及解决方法
Nov 12 PHP
输入值/表单提交参数过滤有效防止sql注入的方法
Dec 25 PHP
PHP 下载文件时自动添加bom头的方法实例
Jan 10 PHP
php格式化日期和时间格式化示例分享
Feb 24 PHP
Fedora下安装php Redis扩展笔记
Sep 03 PHP
php源码分析之DZX1.5随机数函数random用法
Jun 17 PHP
CI框架封装的常用图像处理方法(缩略图,水印,旋转,上传等)
Nov 22 PHP
php实现简单加入购物车功能
Mar 07 PHP
PHP+Apache环境中如何隐藏Apache版本
Nov 24 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
PHP5 操作MySQL数据库基础代码
2009/09/29 PHP
php设计模式 Strategy(策略模式)
2011/06/26 PHP
基于PHP服务端图片生成缩略图的方法详解
2013/06/20 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
对JavaScript的全文搜索实现相关度评分的功能的方法
2015/06/24 Javascript
AngularJs实现ng1.3+表单验证
2015/12/10 Javascript
Json解析的方法小结
2016/06/22 Javascript
微信小程序访问node.js接口服务器搭建教程
2017/04/25 Javascript
浅谈通过JS拦截 pushState和replaceState事件
2017/07/21 Javascript
js禁止表单重复提交
2017/08/29 Javascript
详解Js中的模块化是如何实现的
2017/10/18 Javascript
vue使用xe-utils函数库的具体方法
2018/03/06 Javascript
在小程序开发中使用npm的方法
2018/10/17 Javascript
微信小程序:数据存储、传值、取值详解
2019/05/07 Javascript
Vue 监听元素前后变化值实例
2020/07/29 Javascript
[04:03]DOTA2英雄梦之声_第02期_风暴之灵
2014/06/30 DOTA
[01:01:35]Optic vs paiN 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
[01:18:31]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第一场 1月10日
2021/03/11 DOTA
Python中的startswith和endswith函数使用实例
2014/08/25 Python
Python标准库之循环器(itertools)介绍
2014/11/25 Python
Python模拟登录验证码(代码简单)
2016/02/06 Python
对python同一个文件夹里面不同.py文件的交叉引用方法详解
2018/12/15 Python
详解小白之KMP算法及python实现
2019/04/04 Python
Python的PIL库中getpixel方法的使用
2020/04/09 Python
使用BeautifulSoup4解析XML的方法小结
2020/12/07 Python
使用CSS3代码绘制可爱的Hello Kitty猫
2016/08/03 HTML / CSS
CSS3的新特性介绍
2008/10/31 HTML / CSS
HTML5 实战PHP之Web页面表单设计
2011/10/09 HTML / CSS
为智能设备设计个性化保护套网站:caseable
2017/01/05 全球购物
英国女性时尚鞋类的潮流制造者:Koi Footwear
2018/10/19 全球购物
PHP如何删除一个Cookie值
2012/11/15 面试题
什么是makefile? 如何编写makefile?
2013/01/02 面试题
保密普查工作实施方案
2014/02/25 职场文书
基层工作经验证明样本
2014/11/16 职场文书
毕业设计论文评语
2014/12/31 职场文书
中标通知书范本
2015/04/17 职场文书