php递归函数return会出现无法正确返回想要值的情况
php递归函数中使用return的时候会碰到无法正确返回想要的值得情况,如果不明白其中的原因,很难找出错误的,就下面的具体例子来说明一下吧:
1
2
3
4
5
6
7
8
9
|
function test( $i ){
$i -=4;
if ( $i <3){
return $i ;
} else {
test( $i );
}
}
echo test(30);
|
这段代码看起来没有问题,如果不运行一下估计你也不会认为他有什么问题,及时运行起来发现有问题你也不一定知道哪里有问题,但其实这个函数的else里面是有问题的。在这段代码里面执行的结果是没有返回值的。
所以虽然满足条件 $i<3 时return $i整个函数还是不会返回值的。因此对上面的PHP递归函数可做如下修改:
1
2
3
4
5
6
7
8
9
|
function test( $i ){
$i -=4;
if ( $i <3){
return $i ;
} else {
return test( $i ); //增加return,让函数返回值
}
}
echo test(30);
|
转载于:https://www.cnblogs.com/as3lib/p/6830881.html
php递归函数return会出现无法正确返回想要值的情况相关推荐
- 返回变量内容的错误示例和正确返回的4种方法
正确返回的4种方法: 将要返回的变量设置为全局变量,所以退出函数时不会被销毁 返回一个局部静态变量,所以退出函数时不会被销毁 使用实参获取变量内容,因为实参是在函数外创建的,所以退出函数时不会被销毁 ...
- ECMAScript6面对大于0xFFFF的Unicode字符如何正确返回长度
一.match() 1.定义 match()方法用于检索字符串内指定(字符串或正则)的值,返回指定值的数组,若找不到,返回null. 2.语法 str.match(searchvalue) str.m ...
- [转载] Java中如何在方法中return返回多个值
参考链接: 用Java返回多个值 今天在学习Java,做编程题练练手的时候,看到了这一题. 本身题目难度不大,但是我在想题目要求返回两个值,return只能返回一个值,我该怎么来实现呢? 我想到了一 ...
- try catch finally return的执行顺序与返回值探究
下午看了一下百度文库中下载下来的java笔试题,其中一道就是关于这个问题的,所以写了个测试程序验证了一下,另外具体的理论知识搜罗了网上的资料. 测试程序如下: package com.andy.cod ...
- python自定义函数中return可以返回多个值_python函数return返回多个值
在函数中一旦使用return,那么函数就会停止往下执行!但是,我们有时候需要函数返回多个值,怎么实现呢?其实python的return可以返回多个值,而且Python 会自动将多个返回值封装成元组. ...
- WebAPi之SelfHost自创建证书启动Https疑难解惑及无法正确返回结果
前言 话说又来需求了,之前对于在SelfHost中需要嵌套页面并操作为非正常需求,这回来正常需求了,客户端现在加了https,老大过来说WebAPi访问不了了,这是什么情况,我去试了试,还真是这个情况 ...
- Math.abs为Integer.Min_VALUE返回错误的值
Math.abs为Integer.Min_VALUE返回错误的值 这段代码: System.out.println(Math.abs(Integer.MIN_VALUE)); 回报-2147483 ...
- python如何返回多个值_python- 如何返回多个值 | 学步园
如何写一个返回多个值的函数 函数的return 语句只能返回一个值,可以是任何类型. 因此,我们可以"返回一个 tuple类型,来间接达到返回多个值 ". 例: x 除以 y ...
- Python学习入门基础教程(learning Python)--2.3.5Python返回多个值问题
本节主要学习Python的函数是如何同时返回多个值的问题. 在学习Python的时候惊奇的发现,Python的函数可以同时返回多个值,很有意思. [python]view plaincopy #def ...
最新文章
- 你已经是个成熟的表格,该学会NLP了
- Android在OnCreate中获取控件的宽度和高度
- LCD控制器与帧率、刷新率的关系分析
- 解决调用HttpContext类
- 一篇文章彻底说清JS的深拷贝/浅拷贝
- python终端指令大全_使用python模拟命令行终端的示例
- 王道计算机考研课件,王道考研计算机组成原理课件ppt
- python堆排序算法_Python算法学习之堆和堆排序
- 修改Android中的文件权限
- 用户节点cdn有什么用处
- Python学习(六) Python数据类型:字典(重要)
- 动态规划时间复杂度_算法分析与设计之动态规划
- UCF101动作识别数据集
- STM32硬件剖析(STM32F407 定时器功能引脚分配)
- UI基本控件(一):UIScrollView
- 在直流电源(Vcc)和地之间并接电容的作用
- 实现Typora多端同步
- Qgis教程3:数据美化
- oracle database express database,安装Oracle Database Express Edition 11g时出现问题
- 海外版抖音TikTok如何运营?