- 什么是递归
所谓递归就是一种函数调用自身的机制。简单来说就是在函数体内直接或间接自己调用自己,但需要设置自调用的条件,若满足条件,则调用函数本身,若不满足则终止本函数的自调用。
- PHP中递归的实现
递归算法的实现方法是有多种的,如通过“静态变量”、“全局变量”、“引用传参”的方式
使用静态变量:
function call(){ static $i = 0; echo $i . ''; $i++; if($i<10){ call(); } } call(); // 输出 0 1 2 3 4 5 6 7 8 9
使用全局变量:
$i=1; function call(){ global $i; echo $i; $i++; if($i<=10){ call(); } } call(); // 输出 1 2 3 4 5 6 7 8 9 10
使用引用传参:
function test($a=0,&$result=array()){ $a++; if ($a<10){ $result[]=$a; test($a,$result); } echo $a."<br>"; return $result; } var_dump(test()); // 依次输出 10 9 8 7 6 5 4 3 2 1 // test() 返回 array(1,2,3,4,5,6,7,8,10)
- 总结
递归需要满足三个条件
1、一个问题可以分解为几个子问题的解。
2、这个问题与分解之后的子问题,除了数据规模不同,求解思路完全一致。
3、存在递归终止条件。