浅析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 采集程序中常用的函数
Dec 09 PHP
解析关于wamp启动是80端口被占用的问题
Jun 21 PHP
destoon调用企业会员公司形象图片的实现方法
Aug 21 PHP
详谈PHP文件目录基础操作
Nov 11 PHP
php下pdo的mysql事务处理用法实例
Dec 27 PHP
php去除html标记的原生函数详解
Jan 27 PHP
Smarty高级应用之缓存操作技巧分析
May 14 PHP
PHP将URL转换成短网址的算法分享
Sep 13 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
Sep 22 PHP
PHP数组式访问接口ArrayAccess用法分析
Dec 28 PHP
在TP5数据库中四个字段实现无限分类的示例
Oct 18 PHP
Laravel 模型使用软删除-左连接查询-表起别名示例
Oct 24 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
让CodeIgniter的ellipsize()支持中文截断的方法
2014/06/12 PHP
PHP扩展CURL的用法详解
2014/06/20 PHP
Laravel学习基础之migrate的使用教程
2017/10/11 PHP
[IE&amp;FireFox兼容]JS对select操作
2007/01/07 Javascript
JavaScript 克隆数组最简单的方法
2009/02/12 Javascript
Javascript 中的 &amp;&amp; 和 || 使用小结
2010/04/25 Javascript
jquery toolbar与网页浮动工具条具体实现代码
2014/01/12 Javascript
jQuery判断checkbox(复选框)是否被选中以及全选、反选实现代码
2014/02/21 Javascript
简介JavaScript中Boolean.toSource()方法的使用
2015/06/05 Javascript
JS实现加载和读取XML文件的方法详解
2017/04/24 Javascript
vue使用v-for实现hover点击效果
2018/09/29 Javascript
微信小程序入口场景的问题集合与相关解决方法
2019/06/26 Javascript
IE11下CKEditor在Bootstrap Modal中下拉问题的解决
2019/09/25 Javascript
JS实现扫码枪扫描二维码功能
2020/01/03 Javascript
PYTHON正则表达式 re模块使用说明
2011/05/19 Python
Windows系统下安装Python的SSH模块教程
2015/02/05 Python
Python如何获取系统iops示例代码
2016/09/06 Python
详解Python多线程Selenium跨浏览器测试
2017/04/01 Python
Python之re操作方法(详解)
2017/06/14 Python
Python编程实现及时获取新邮件的方法示例
2017/08/10 Python
Python安装图文教程 Pycharm安装教程
2018/03/27 Python
Python实现删除时保留特定文件夹和文件的示例
2018/04/27 Python
利用pandas读取中文数据集的方法
2018/07/25 Python
基于tensorflow加载部分层的方法
2018/07/26 Python
python 3.7.0 安装配置方法图文教程
2018/08/27 Python
Django实现发送邮件功能
2019/07/18 Python
正则给header的冒号两边参数添加单引号(Python请求用)
2019/08/09 Python
win10下安装Anaconda的教程(python环境+jupyter_notebook)
2019/10/23 Python
python 二维矩阵转三维矩阵示例
2019/11/30 Python
使用Numpy对特征中的异常值进行替换及条件替换方式
2020/06/08 Python
如何使用python写截屏小工具
2020/09/29 Python
Python新建项目自动添加介绍和utf-8编码的方法
2020/12/26 Python
人资专员岗位职责
2014/04/04 职场文书
道路施工安全责任书
2014/07/24 职场文书
12.4法制宣传日标语
2014/10/08 职场文书
关于元旦的广播稿2016
2015/12/17 职场文书