浅析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 相关文章推荐
JAVA/JSP学习系列之四
Oct 09 PHP
PHP新手上路(四)
Oct 09 PHP
用缓存实现静态页面的测试
Dec 06 PHP
PHP及Zend Engine的线程安全模型分析
Nov 10 PHP
PHP下使用CURL方式POST数据至API接口的代码
Feb 14 PHP
PHP生成随机用户名和密码的实现代码
Feb 27 PHP
深入解析PHP中逗号与点号的区别
Aug 05 PHP
php数组生成html下拉列表的方法
Jul 20 PHP
PHP定时执行任务实现方法详解(Timer)
Jul 30 PHP
详解PHP中的序列化、反序列化操作
Mar 21 PHP
php显示页码分页类的封装
Jun 08 PHP
php设计模式之观察者模式定义与用法经典示例
Sep 19 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
Protoss建筑一览
2020/03/14 星际争霸
PHP mb_convert_encoding文字编码的转换函数介绍
2011/11/10 PHP
php的大小写敏感问题整理
2011/12/29 PHP
php字符串截取函数用法分析
2014/11/25 PHP
Smarty最简单实现列表奇偶变色的方法
2015/07/01 PHP
微信支付开发订单查询实例
2016/07/12 PHP
PHP用continue跳过本次循环中剩余代码的注意点
2017/06/27 PHP
Javascript 函数中的参数使用分析
2010/03/27 Javascript
Raphael带文本标签可拖动的图形实现代码
2013/02/20 Javascript
关于js遍历表格的实例
2013/07/10 Javascript
js获取事件源及触发该事件的对象
2013/10/24 Javascript
jQuery中 delegate使用的问题
2015/07/03 Javascript
JavaScript数据推送Comet技术详解
2016/04/07 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的方法
2016/11/29 Javascript
Bootstrap基本插件学习笔记之轮播幻灯片(23)
2016/12/08 Javascript
纯JS单页面赛车游戏制作代码分享
2017/03/03 Javascript
vue2.0实战之基础入门(1)
2017/03/27 Javascript
js时间查询插件使用详解
2017/04/07 Javascript
vue 中的keep-alive实例代码
2018/07/20 Javascript
Vue组件之单向数据流的解决方法
2018/11/10 Javascript
angular4自定义表单控件[(ngModel)]的实现
2018/11/23 Javascript
python使用ctypes模块调用windowsapi获取系统版本示例
2014/04/17 Python
Python中使用ElementTree解析XML示例
2015/06/02 Python
Python爬虫实例爬取网站搞笑段子
2017/11/08 Python
Python实现随机生成手机号及正则验证手机号的方法
2018/04/25 Python
python中从str中提取元素到list以及将list转换为str的方法
2018/06/26 Python
python 列表中[ ]中冒号‘:’的作用
2019/04/30 Python
python几种常用功能实现代码实例
2019/12/25 Python
Python标准库json模块和pickle模块使用详解
2020/03/10 Python
贝玲妃美国官方网站:Benefit美国
2016/08/28 全球购物
美国汽配连锁巨头Pep Boys官网:轮胎更换、汽车维修服务和汽车零部件
2017/01/14 全球购物
anello泰国官方网站:日本流行包包品牌
2019/08/08 全球购物
公司年终奖分配方案
2014/06/16 职场文书
邀请函的格式
2015/01/30 职场文书
docker compose 部署 golang 的 Athens 私有代理问题
2022/04/28 Servers
MySQL 数据表操作
2022/05/04 MySQL