PHP 函数

能够调用自身的函数称为递归函数。递归函数通常以一个或多个边界条件结束,这些边界条件定义了函数的退出条件,否则它将进入无限循环。

示例:数字的阶乘

阶乘正整数的乘积是所有小于或等于该数字的正整数的乘积。

数字的阶乘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。斐波那契项是前两项的总和,以 01 开头。在数学上,它可以表示为:

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