浅析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之第三天
Oct 09 PHP
用PHP和ACCESS写聊天室(十)
Oct 09 PHP
PHP 八种基本的数据类型小结
Jun 01 PHP
深入php var_dump()函数的详解
Jun 05 PHP
PHP面向对象教程之自定义类
Jun 10 PHP
yii框架无限极分类的实现方法
Apr 08 PHP
yii2项目实战之restful api授权验证详解
May 20 PHP
PHP正则匹配操作简单示例【preg_match_all应用】
Jul 10 PHP
laravel 事件/监听器实例代码
Apr 12 PHP
Laravel框架模型的创建及模型对数据操作示例
May 07 PHP
微信公众号之主动给用户发送消息功能
Jun 22 PHP
基于laravel-admin 后台 列表标签背景的使用方法
Oct 03 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
调整优化您的LAMP应用程序的5种简单方法
2011/06/26 PHP
php多文件上传下载示例分享
2014/02/20 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
2017/09/16 PHP
Prototype 1.5.0_rc1 及 Prototype 1.5.0 Pre0小抄本
2006/09/22 Javascript
XRegExp 0.2: Now With Named Capture
2007/11/30 Javascript
javascript下高性能字符串连接StringBuffer类
2010/08/16 Javascript
JavaScript window.location对象
2014/11/14 Javascript
JS数组排序技巧汇总(冒泡、sort、快速、希尔等排序)
2015/11/24 Javascript
Nodejs爬虫进阶教程之异步并发控制
2016/02/15 NodeJs
JavaScript中两个字符串的匹配
2016/06/08 Javascript
javascript 数组的正态分布排序的问题
2016/07/31 Javascript
ES6正则的扩展实例详解
2017/04/25 Javascript
nodejs处理图片的中间件node-images详解
2017/05/08 NodeJs
jquery 一键复制到剪切板的实例
2017/09/20 jQuery
vue路由对不同界面进行传参及跳转的总结
2019/04/20 Javascript
vue-cli3 DllPlugin 提取公用库的方法
2019/04/24 Javascript
原生js实现放大镜组件
2021/01/22 Javascript
python结合shell查询google关键词排名的实现代码
2016/02/27 Python
Python中实现switch功能实例解析
2018/01/11 Python
Python将文字转成语音并读出来的实例详解
2019/07/15 Python
django中瀑布流写法实例代码
2019/10/14 Python
python set集合使用方法解析
2019/11/05 Python
python GUI库图形界面开发之PyQt5窗口布局控件QStackedWidget详细使用方法
2020/02/27 Python
Python Mock模块原理及使用方法详解
2020/07/07 Python
如何在python中判断变量的类型
2020/07/29 Python
Ubuntu配置Pytorch on Graph (PoG)环境过程图解
2020/11/19 Python
利用python制作拼图小游戏的全过程
2020/12/04 Python
英国演唱会订票网站:Ticket Selection
2018/03/27 全球购物
餐饮业经理竞聘演讲稿
2014/01/14 职场文书
电力公司个人求职信范文
2014/02/04 职场文书
应届毕业生如何写求职信
2014/02/16 职场文书
金融学专业大学生职业生涯规划
2014/03/07 职场文书
自主招生学校推荐信
2014/09/26 职场文书
JS实现扫雷项目总结
2021/05/19 Javascript
对Keras自带Loss Function的深入研究
2021/05/25 Python
教你修复 Win11应用商店加载空白问题
2021/12/06 数码科技