浅析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 相关文章推荐
Apache服务器无法使用的解决方法
May 08 PHP
php生成txt文件标题及内容的方法
Jan 16 PHP
ThinkPHP CURD方法之where方法详解
Jun 18 PHP
PHP中if和or运行效率对比
Dec 12 PHP
PHP中文编码小技巧
Dec 25 PHP
PHP中error_log()函数的使用方法
Jan 20 PHP
php实现向javascript传递数组的方法
Jul 27 PHP
php代码架构的八点注意事项
Jan 25 PHP
PHP+iframe图片上传实现即时刷新效果
Nov 18 PHP
php+ajax简单实现全选删除的方法
Dec 06 PHP
thinkPHP5.0框架应用请求生命周期分析
Mar 25 PHP
yii2局部关闭(开启)csrf的验证的实例代码
Jul 10 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中websocket的使用方法
2016/09/15 PHP
PHP中快速生成随机密码的几种方式
2017/04/17 PHP
PHP7新增函数
2021/03/09 PHP
分享十五个最佳jQuery 幻灯插件和教程
2010/03/27 Javascript
jQuery创建插件的代码分析
2011/04/14 Javascript
js中eval()函数和trim()去掉字符串左右空格应用
2013/02/02 Javascript
jQuery调用RESTful WCF示例代码(GET方法/POST方法)
2014/01/26 Javascript
浅析Javascript中“==”与“===”的区别
2014/12/23 Javascript
解决wx.onMenuShareTimeline出现的问题
2016/08/16 Javascript
JS获取html元素的标记名实现方法
2016/10/08 Javascript
AngularJS封装$http.post()实例详解
2017/05/06 Javascript
Ionic + Angular.js实现验证码倒计时功能的方法
2017/06/12 Javascript
bootstrap modal+gridview实现弹出框效果
2017/08/15 Javascript
微信小程序实现日历效果
2018/12/28 Javascript
Node.js console控制台简单用法分析
2019/01/04 Javascript
Vue微信公众号网页分享的示例代码
2020/05/28 Javascript
用python实现的去除win下文本文件头部BOM的代码
2013/02/10 Python
Python自动调用IE打开某个网站的方法
2015/06/03 Python
Python基于PycURL自动处理cookie的方法
2015/07/25 Python
Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】
2017/09/28 Python
Python简单实现的代理服务器端口映射功能示例
2018/04/08 Python
对python中的xlsxwriter库简单分析
2018/05/04 Python
Python识别快递条形码及Tesseract-OCR使用详解
2019/07/15 Python
Python利用requests模块下载图片实例代码
2019/08/12 Python
pygame实现打字游戏
2021/02/19 Python
西班牙香水和化妆品网上商店:Douglas
2017/10/29 全球购物
俄罗斯名牌服装网上商店:UNIQUE FABRIC
2019/07/25 全球购物
介绍一下Java中的static关键字
2012/05/12 面试题
出生医学证明样本
2014/01/17 职场文书
工作表现评语
2014/01/19 职场文书
幼儿园教师工作感言
2014/02/15 职场文书
学习焦裕禄同志为人民服务思想汇报
2014/09/10 职场文书
公司股东出资证明书
2014/11/01 职场文书
社区敬老月活动总结
2015/05/07 职场文书
小平您好观后感
2015/06/09 职场文书
win11无法添加打印机怎么办? 提示windows无法打开添加打印机的解决办法
2022/04/05 数码科技