今日课程:PHP 3天基础巩固视频教程【燕十八】

1、递归概念

function sum($n){
	if($n == 1){
		return 1;
	}
	return $n + sum($n - 1);
}
echo sum(100);
echo "<br />";

2、递归技巧

//递归技巧
//假设法--假设自己的函数已经完成
//用递归打印当前目录下的所有文件目录及子目录
function printdir($a,$lev = 1){
	$dh = opendir($a);
	while (($row = readdir($dh)) !== false){
echo str_repeat('&nbsp;', $lev),$row,'<br />';
if('.' == $row || '..'== $row){
	continue;
}
if (is_dir($a.'/'.$row)) {
printdir($a.'/'.$row);
}
	}
closedir($dh);
}
$a = '.';
printdir($a,$lev);

3、static静态变量

$arr = array(1,2,3,array(4,array(5,6)));
//写递归函数,计算所有单元的和
function sun($arr){
	static $sum = 0;
	foreach ($arr as $v) {
	if(is_array($v)){
	sun($v);
	} else {
		$sum += $v;	
	}
}
	echo $sum,'<br />';//11,4,6
	return $sum;
}
echo sun($arr);

休息