php递归函数中使用return的注意事项

yipeiwu_com6年前PHP代码库
php递归函数中使用return的时候会碰到无法正确返回想要的值得情况,如果不明白其中的原因,很难找出错误的,就下面的具体例子来说明一下吧:
复制代码 代码如下:

function test($i){
$i-=4;
if($i<3){
return $i;
}else{
test($i);
}
}
echotest(30);

这段代码看起来没有问题,如果不运行一下估计你也不会认为他有什么问题,及时运行起来发现有问题你也不一定知道哪里有问题,但其实这个函数的else里面是有问题的。在这段代码里面执行的结果是没有返回值的。所以虽然满足条件 $i<3 时return $i整个函数还是不会返回值的。因此对上面的PHP递归函数可做如下修改(更多PHP教程请访问代码家园):
复制代码 代码如下:

function test($i){
$i-=4;
if($i<3){
return $i;
}else{
return test($i);//增加return,让函数返回值
}
}
echotest(30);

相关文章

总结PHP删除字符串最后一个字符的三种方法

一、前言 从数据库中select()读取一对多的信息时,经常需要将取出的数组用某个特定的字符分割,然后拼接成字符串。 常见的语法格式: foreach ($arr as $key...

通过php添加xml文档内容的方法

本文实例讲述了通过php添加xml文档内容的方法。分享给大家供大家参考。具体分析如下: 这里讲述的添加xml文档内容,从上一篇《DOM基础及php读取xml内容操作的方法》继续,代码如下...

PHP实现防止表单重复提交功能【基于token验证】

PHP实现防止表单重复提交功能【基于token验证】

本文实例讲述了PHP实现防止表单重复提交功能。分享给大家供大家参考,具体如下: 防止表单重复提交的方法有很多种,那么今天就给大家介绍一种php如何有效的防止表单重复提交。 代码非常简单...

老生常谈文本文件和二进制文件的区别

从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种。 ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。例如,数567...

php创建桌面快捷方式实现方法

php创建桌面快捷方式实现方法

第一种情况:php生成网页桌面快捷方式 将介绍使用php生成网页桌面快捷方式的代码,并添加图标及解决不同浏览器保存出现的乱码问题。 我们访问网站时,如果网站的内容很有吸引,一般我们都会使...