PHP递归返回值时出现的问题解决办法


Posted in PHP onFebruary 19, 2013

我们在使用PHP递归时,会遇到各种各样的问题,其中比较令人苦恼的是有关PHP递归返回值时出现的问题。其实细细想想这是一个很简单的问题。可就是这个简单的问题困扰了半个下午。问题出在递归函数的返回值上。

这是开始写的:

<?php   
function test($i)   
{   
$i -= 4;   
if($i < 3)   
{   
return $i;   
}   
else    
{   
test($i);   
}   
}   
echo test(30);   
?>

这段代码看起来没有问题,其实有else里面是有问题的。在这里执行的test没有返回值。所以虽然满足条件$i < 3时 return $i整个函数还是不会返回值的。对上面的PHP递归返回值函数做如下修改:
< ?php   
function test($i)   
{   
$i -= 4;   
if($i < 3)   
{   
return $i;   
}   
else    
{   
return test($i); //增加return, 让函数返回值   
}   
}   
echo test(30);   
?>

以上代码示例就是PHP递归返回值出现问题时的具体解决方法。
PHP 相关文章推荐
php 数学运算验证码实现代码
Oct 11 PHP
PHP中的错误处理、异常处理机制分析
May 07 PHP
PHP用身份证号获取星座和生肖的方法
Nov 07 PHP
js和php邮箱地址验证的实现方法
Jan 09 PHP
PHP实现图片裁剪、添加水印效果代码
Oct 01 PHP
PHP中通过fopen()函数访问远程文件示例
Nov 18 PHP
php示例详解Constructor Prototype Pattern 原型模式
Oct 15 PHP
yii2带搜索功能的下拉框实例详解
May 12 PHP
php 如何禁用eval() 函数实例详解
Dec 01 PHP
PHP使用Redis替代文件存储Session的方法
Feb 15 PHP
thinkPHP5.0框架验证码调用及点击图片刷新简单实现方法
Sep 07 PHP
laravel在中间件内生成参数并且传递到控制器中的2种姿势
Oct 15 PHP
PHP递归算法的详细示例分析
Feb 19 #PHP
七款最流行的PHP本地服务器分享
Feb 19 #PHP
浅析PHP递归函数返回值使用方法
Feb 18 #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
You might like
PHP实现JS中escape与unescape的方法
2016/07/11 PHP
php str_replace替换指定次数的方法详解
2017/05/05 PHP
Yii框架Session与Cookie使用方法示例
2019/10/14 PHP
JS获取浏览器版本及名称实现函数
2013/04/02 Javascript
JQuery教学之性能优化
2014/05/14 Javascript
JavaScript通过function定义对象并给对象添加toString()方法实例分析
2015/03/23 Javascript
jquery控制页面部分刷新的方法
2015/06/24 Javascript
javascript实现图片延迟加载方法汇总(三种方法)
2015/08/27 Javascript
jQuery复制表单元素附源码分享效果演示
2015/09/30 Javascript
js简单判断flash是否加载完成的方法
2016/06/21 Javascript
Javascript中 带名 匿名 箭头函数的重要区别(推荐)
2017/01/29 Javascript
JS实现网页抢购功能(触发,终止脚本)
2017/11/27 Javascript
js实现敏感词过滤算法及实现逻辑
2018/07/24 Javascript
vue实现条件判断动态绑定样式的方法
2018/09/29 Javascript
微信小程序签到功能
2018/10/31 Javascript
微信小程序常见页面跳转操作简单示例
2019/05/01 Javascript
vue 搭建后台系统模块化开发详解
2019/05/01 Javascript
vue实现修改图片后实时更新
2019/11/14 Javascript
jquery添加div实现消息聊天框
2020/02/08 jQuery
快速解决element的autofocus失效问题
2020/09/08 Javascript
[52:15]2014 DOTA2国际邀请赛中国区预选赛5.21 HGT VS LGD-GAMING
2014/05/23 DOTA
Python多线程编程简单介绍
2015/04/13 Python
Kears+Opencv实现简单人脸识别
2019/08/28 Python
使用批处理脚本自动生成并上传NuGet包(操作方法)
2019/11/19 Python
Kears 使用:通过回调函数保存最佳准确率下的模型操作
2020/06/17 Python
Python装饰器结合递归原理解析
2020/07/02 Python
Python web框架(django,flask)实现mysql数据库读写分离的示例
2020/11/18 Python
详解HTML5中的Communication API基本使用方法
2016/01/29 HTML / CSS
迪梵英国官方网站:Darphin英国
2017/12/06 全球购物
社区安全检查制度
2014/02/03 职场文书
企业文化标语口号
2014/06/09 职场文书
活动总结新闻稿
2014/08/30 职场文书
网球场地租赁协议范本
2014/10/07 职场文书
深度好文:50条没人告诉你的人生经验,句句精辟
2019/08/22 职场文书
CentOS下安装Jenkins的完整步骤
2022/04/07 Servers
Python简易开发之制作计算器
2022/04/28 Python