系统函数之递归函数

时间:2022-01-23 02:26:55
<?php
//系统函数之递归函数
function func($dir)
{
//打开一个文件资源;
$file=opendir($dir);
//读取文件资源
readdir($file)."<br>";//文件夹下的第一个文件为当前目录"."
readdir($file)."<br>";//文件夹下的第二个文件为表示上级目录的".."
//循环遍历除了"."和".."的文件资源
while($filename=readdir($file))
    {
        $nfile=$dir."/".$filename;//将文件路径转移到$dir文件夹内部;
        if(is_dir($nfile))
        {
            echo "目录:".$filename."<br>";
            func($nfile);//递归函数:如果在函数中发现需要执行和函数本身功能一样的功能,就可以直接使用在函数中来调用函数本身
        }
        else
            echo "文件:".$filename."<br>";
    }

//关闭一个文件资源
closedir($file);
}
func("./apache");


//递归函数理解难点:最重要的是要明白递归函数归的概念,函数执行完了之后要重新从最里层函数中一层层跳出来,否则就会陷入死循环,如下举例:
function test($num)
{
    echo $num."<br>";
    if($num>0)
        test($num-1);
    else
        echo "--------<br>";
    echo $num."<br>";
    
}
test(10);
?>