能够调用自身的函数称为递归函数。递归函数通常以一个或多个边界条件结束,这些边界条件定义了函数的退出条件,否则它将进入无限循环。
示例:数字的阶乘
阶乘正整数的乘积是所有小于或等于该数字的正整数的乘积。
数字的阶乘n = n! = n(n-1)(n-2)...1
在下面的示例中,使用名为 factorial() 的递归函数来计算数字的阶乘。
<?php
function factorial($x) {
if ($x == 0 || $x == 1)
return 1;
else
return $x*factorial($x-1);
}
echo "3! = ".factorial(3)."\n";
echo "5! = ".factorial(5)."\n";
echo "10! = ".factorial(10)."\n";
?>
上述代码的输出将是:
3! = 6
5! = 120
10! = 3628800
示例:斐波那契数列
斐波那契项通常表示为Fn。斐波那契项是前两项的总和,以 0 和 1 开头。在数学上,它可以表示为:
Fn = Fn-1 + Fn-2
边界条件:F0 = 0 和 F1 = 1
斐波那契数列:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233.. .
在下面的示例中,创建了一个名为 fib() 的递归函数来找出斐波那契数列的第 n 项。
<?php
function fib($n) {
if ($n == 0)
{return 0;}
elseif ($n == 1)
{return 1;}
else
{return fib($n-1) + fib($n-2);}
}
echo "Fibonacci 5th term: ".fib(5)."\n";
echo "Fibonacci 6th term: ".fib(6)."\n";
echo "Fibonacci 7th term: ".fib(7)."\n";
?>
上述代码将给出以下输出:
Fibonacci 5th term: 5
Fibonacci 6th term: 8
Fibonacci 7th term: 13