浅析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的ASP防火墙
Oct 09 PHP
PHP+MYSQL开发工具及资源收藏
Jan 02 PHP
需要使用php模板的朋友必看的很多个顶级PHP模板引擎比较分析
May 26 PHP
php microtime获取浮点的时间戳
Feb 21 PHP
延长phpmyadmin登录时间的方法
Feb 06 PHP
PHP-CGI进程CPU 100% 与 file_get_contents 函数的关系分析
Aug 15 PHP
php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证
May 04 PHP
PHP MVC框架skymvc支持多文件上传
May 26 PHP
PHP使用mysql与mysqli连接Mysql数据库用法示例
Jul 07 PHP
php 开发中加密的几种方法总结
Mar 22 PHP
ThinkPHP防止重复提交表单的方法实例分析
May 10 PHP
在Laravel5.6中使用Swoole的协程数据库查询
Jun 15 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
DC动画很好看?新作烂得令人发指,名叫《红色之子》
2020/04/09 欧美动漫
探讨:php中在foreach中使用foreach ($arr as &amp;$value) 这种类型的解释
2013/06/24 PHP
destoon利用Rewrite规则设置网站安全
2014/06/21 PHP
php实现源代码加密的方法
2015/07/11 PHP
PHP代码实现表单数据验证类
2015/07/28 PHP
使用php-timeit估计php函数的执行时间
2015/09/06 PHP
[原创]PHP正则删除html代码中a标签并保留标签内容的方法
2017/05/23 PHP
js实现拖拽 闭包函数详细介绍
2012/11/25 Javascript
使用JQuery库提供的扩展功能实现自定义方法
2014/09/09 Javascript
复制网页内容,粘贴之后自动加上网址的实现方法(脚本之家特别整理)
2014/10/16 Javascript
json实现前后台的相互传值详解
2015/01/05 Javascript
JS仿Windows开机启动Loading进度条的方法
2015/02/26 Javascript
JavaScript中数组继承的简单示例
2015/07/29 Javascript
jQuery实现可高亮显示的二级CSS菜单效果
2015/09/01 Javascript
基于JavaScript代码实现自动生成表格
2016/06/15 Javascript
vue-cli构建项目使用 less的方法
2017/10/04 Javascript
vue实现打印功能的两种方法
2018/09/07 Javascript
js删除对象/数组中null、undefined、空对象及空数组方法示例
2018/11/14 Javascript
详解如何在Vue项目中导出Excel
2019/04/19 Javascript
JS中的函数与对象的创建方式
2019/05/12 Javascript
vue项目添加多页面配置的步骤详解
2019/05/22 Javascript
vue3为什么要用proxy替代defineProperty
2020/10/19 Javascript
[01:31]完美与DOTA2历程
2014/07/31 DOTA
[34:44]Liquid vs TNC Supermajor 胜者组 BO3 第二场 6.4
2018/06/05 DOTA
python读取json文件并将数据插入到mongodb的方法
2015/03/23 Python
分享Python文本生成二维码实例
2016/01/06 Python
python 读取dicom文件,生成info.txt和raw文件的方法
2019/01/24 Python
Python模块的制作方法实例分析
2019/12/21 Python
Python是什么 Python的用处
2020/05/26 Python
Notino瑞典:购买香水和美容产品
2019/07/26 全球购物
Ben Sherman官方网站:英国男装品牌
2019/10/22 全球购物
服务标语口号
2014/07/01 职场文书
入党团支部推荐意见
2015/06/02 职场文书
缅怀先烈主题班会
2015/08/14 职场文书
以MySQL5.7为例了解一下执行计划
2022/04/13 MySQL
Nginx使用ngx_http_upstream_module实现负载均衡功能示例
2022/08/05 Servers