浅析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的curl实现get和post的代码
Aug 23 PHP
PHP COOKIE设置为浏览器进程
Jun 21 PHP
PHP 网页过期时间的控制代码
Jun 29 PHP
克隆一个新项目的快捷方式
Apr 10 PHP
如何在Ubuntu下启动Apache的Rewrite功能
Jul 05 PHP
学习php过程中的一些注意点的总结
Oct 25 PHP
利用浏览器的Javascript控制台调试PHP程序
Jan 08 PHP
PHP实现的简单日历类
Nov 29 PHP
php连接微软MSSQL(sql server)完全攻略
Nov 27 PHP
利用PHPExcel读取Excel的数据和导出数据到Excel
May 12 PHP
laravel-admin解决表单select联动时,编辑默认没选上的问题
Sep 30 PHP
PHP加MySQL消息队列深入理解
Feb 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按百分比生成缩略图的代码分享
2014/05/10 PHP
PHP封装返回Ajax字符串和JSON数组的方法
2017/02/17 PHP
php封装json通信接口详解及实例
2017/03/07 PHP
PHP自定义错误处理的方法分析
2018/12/19 PHP
HTML上传控件取消选择
2013/03/06 Javascript
jquery $.each() 使用小探
2013/08/23 Javascript
jquery+ajax+C#实现无刷新操作数据库数据的简单实例
2014/02/08 Javascript
jquery获取checkbox的值并post提交
2015/01/14 Javascript
javascript实现设置、获取和删除Cookie的方法
2015/06/01 Javascript
jQuery Mobile页面返回不需要重新get
2016/04/26 Javascript
angular4实现tab栏切换的方法示例
2017/10/21 Javascript
2019年度web前端面试题总结(主要为Vue面试题)
2020/01/12 Javascript
微信小程序实现搜索功能
2020/03/10 Javascript
VUE和Antv G6实现在线拓扑图编辑操作
2020/10/28 Javascript
Python编程实现从字典中提取子集的方法分析
2018/02/09 Python
详解分布式任务队列Celery使用说明
2018/11/29 Python
python读取几个G的csv文件方法
2019/01/07 Python
python文件绝对路径写法介绍(windows)
2019/12/25 Python
解决springboot yml配置 logging.level 报错问题
2020/02/21 Python
matplotlib jupyter notebook 图像可视化 plt show操作
2020/04/24 Python
详解Django中的FBV和CBV对比分析
2021/03/01 Python
canvas绘制文本内容自动换行的实现代码
2019/01/14 HTML / CSS
T3官网:头发造型工具
2019/12/26 全球购物
简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程
2012/04/17 面试题
公务员年总结的自我评价
2013/10/25 职场文书
董事长秘书职责
2014/01/31 职场文书
财务部经理岗位职责
2014/02/03 职场文书
2014年医生工作总结
2014/11/21 职场文书
2015年毕业生个人自荐书
2015/03/24 职场文书
乡镇科协工作总结2015
2015/05/19 职场文书
解除合同协议书范本
2016/03/21 职场文书
2016年小学“我们的节日·中秋节”活动总结
2016/04/05 职场文书
python之PySide2安装使用及QT Designer UI设计案例教程
2021/07/26 Python
Python OpenGL基本配置方式
2022/05/20 Python
聊聊配置 Nginx 访问与错误日志的问题
2022/05/25 Servers
HTML 里 img 元素的 src 和 srcset 属性的区别详解
2023/05/21 HTML / CSS