Heim >Backend-Entwicklung >PHP-Tutorial >深入理解php递归函数返回值的正确用法

深入理解php递归函数返回值的正确用法

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-07-25 08:51:291689Durchsuche
本文介绍了php递归函数中返回值的正确用法,php递归函数中使用return返回值需要注意哪些问题,以加深对php递归函数的理解。

php递归函数返回值

例子,php递归函数返回值写法。

复制代码 代码示例: 0) { $n--; return sum($n,$s); }else{ return $s; } } $sum = 0; echo sum(5,$sum);

在使用php递归函数时,会遇到php递归返回值时出现的问题。 通常问题都出在递归函数的返回值上。

最初的php递归函数的例子:

复制代码 代码示例:

以上代码中,else里面是有问题的。在这里执行的test没有返回值。 虽然满足条件$i

对以上php递归返回值函数做如下修改:

复制代码 代码示例:

二、对php递归函数的理解

递归函数为自调用函数,在函数体内直接或间接自己调用自己,但需要设置自调用的条件,若满足条件,则调用函数本身,若不满足则终止本函数的自调用,然后把目前流程的主控权交回给上一层函数来执行。

例子:

复制代码 代码示例: 0){ test($n-1); }else{ echo ""; } echo $n."  " } test(2) ?>

这个例子最终的输出结果是2 1 00 1 2

分析: 第一步,执行test(2),echo 2,然后因为2>0,执行test(1), 后面还有没来得及执行的echo 2 第二步,执行test(1),echo 1,然后因为1>0,执行test(0),同样后面还有没来得及执行的 echo 1 第二步,执行test(0),echo 0,执行test(0),echo 0, 此时0>0的条件不满足,不在执行test()函数,而是echo “”,并且执行后面的 echo 0 此时函数已经不再调用自己,开始将流程的主控权交回给上一层函数来执行,也就是开始执行刚刚所有test()函数没来得及输出的最后一个echo,0的一层是1也就是输出1 1的上一层是2 也就是输出2 2没有山一层 所以呢 输出的内容就是2 1 00 1 2

三、php递归函数中使用return返回值需要注意哪些问题?

php递归函数中使用return时无法正确返回想要的值怎么办?

例子:

复制代码 代码示例: function test($i){ $i-=4; if($i以上代码在运行进,这个函数的else里面是有问题的。在这段代码里面执行的结果是没有返回值的。 虽然满足条件 $i

对上面的PHP递归函数,做如下修改:

复制代码 代码示例: function test($i){ $i-=4; if($i如此,在调用php递归函数时,就可以返回需要的值了。


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn