浅析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操作JSON格式数据的实现代码
Dec 24 PHP
ThinkPHP3.1新特性之对Ajax的支持更加完善
Jun 19 PHP
php插入排序法实现数组排序实例
Feb 16 PHP
laravel安装zend opcache加速器教程
Mar 02 PHP
php发送短信验证码完成注册功能
Nov 24 PHP
thinkphp框架下404页面设置 仅三步
May 14 PHP
Yii框架连接mongodb数据库的代码
Jul 27 PHP
thinkphp多表查询两表有重复相同字段的完美解决方法
Sep 22 PHP
浅谈php中curl、fsockopen的应用
Dec 10 PHP
php 访问oracle 存储过程实例详解
Jan 08 PHP
Laravel使用原生sql语句并调用的方法
Oct 09 PHP
PHP实现常用排序算法的方法
Feb 05 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获取网卡地址的代码
2008/04/09 PHP
PHP里的单例类写法实例
2015/06/25 PHP
Yii使用技巧大汇总
2015/12/29 PHP
php中curl和soap方式请求服务超时问题的解决
2018/06/11 PHP
关于laravel 日志写入失败问题汇总
2019/10/17 PHP
jquery(live)中File input的change方法只起一次作用的解决办法
2011/10/21 Javascript
主页面中的两个iframe实现鼠标拖动改变其大小
2013/04/16 Javascript
IE与FireFox的JavaScript兼容问题解决办法
2013/12/31 Javascript
jquery实现select下拉框美化特效代码分享
2015/08/18 Javascript
简述jQuery ajax的执行顺序
2016/01/05 Javascript
JavaScript中的ParseInt(&quot;08&quot;)和“09”返回0的原因分析及解决办法
2016/05/19 Javascript
30分钟快速掌握Bootstrap框架
2016/05/24 Javascript
javascript特殊文本输入框网页特效
2016/09/13 Javascript
AngularJS实现根据变量改变动态加载模板的方法
2016/11/04 Javascript
基于bootstrap-datetimepicker.js不支持IE8的快速解决方法
2016/11/07 Javascript
如何封装了一个vue移动端下拉加载下一页数据的组件
2019/01/06 Javascript
小程序云开发如何实现图片上传及发表文字
2019/05/17 Javascript
[34:39]Secret vs VG 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
python获取豆瓣电影简介代码分享
2014/01/16 Python
利用python获取当前日期前后N天或N月日期的方法示例
2017/07/30 Python
ubuntu中配置pyqt4环境教程
2017/12/27 Python
使用Jupyter notebooks上传文件夹或大量数据到服务器
2020/04/14 Python
Python 使用生成器代替线程的方法
2020/08/04 Python
Python+unittest+requests 接口自动化测试框架搭建教程
2020/10/09 Python
python中四舍五入的正确打开方式
2021/01/18 Python
Trip.com澳大利亚:在线旅行社
2019/12/01 全球购物
荣耀商城:HIHONOR
2020/11/03 全球购物
毕业生自我推荐
2013/11/04 职场文书
2014年党员创先争优承诺书
2014/05/29 职场文书
正风肃纪剖析材料范文
2014/10/10 职场文书
2014年度个人总结范文
2015/03/09 职场文书
获奖感言怎么写
2015/07/31 职场文书
婚宴祝酒词大全
2015/08/10 职场文书
中秋节主题班会
2015/08/14 职场文书
使用Nginx搭载rtmp直播服务器的方法
2021/10/16 Servers
SpringBoot2零基础到精通之数据库专项精讲
2022/03/22 Java/Android