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

yipeiwu_com5年前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基于单例模式编写PDO类的方法

一、单例模式简介 简单的说,一个对象(在学习设计模式之前,需要比较了解面向对象思想)只负责一个特定的任务; 二、为什么要使用PHP单例模式?    &n...

php 来访国内外IP判断代码并实现页面跳转

我大概构思了一下,有两个方案: 1. Javascript判断来访者的浏览器语言,如果是中文系统,自然使用者都是中国人,跳中文网站; 如果是非中文系统,默认使用者非中国人,跳英文网站。...

phpmyadmin3 安装配置图解教程

phpmyadmin3 安装配置图解教程

在PHP网站开发中,最基本的PHP环境搭建涉及PHP、Apache/IIS、Mysql,对于数据库的管理,除了Mysql数据库自身提供了命令行工具方便开发人员管理数据库外,基于PHP开发...

自己在做项目过程中学到的PHP知识收集

1 在SQL语句中可通过添加限制条件:left(text,20)只取text文本的前20个字; 2 可以用limit fromRecord, RecordNum 来作为分页使用,比如li...

php实现解析xml并生成sql语句的方法

php实现解析xml并生成sql语句的方法

本文实例讲述了php实现解析xml并生成sql语句的方法。分享给大家供大家参考,具体如下: php解析xml有很多种办法,文档中有,搜索一下就一大把的。 今天遇到一个需求:将某个xml中...