5.5.1 PHP递归函数

递归函数

所谓的函数递归调用,就是函数可以在其声明的执行叙述之中调用执行自己。
通常在此类型的函数之中会附加一个条件判断叙述,以判断是否需要执行递归调用,并且在特定条件下终止函数的递归调用动作,把目前流程的主控权交回上一层函数执行。因此当某个执行递归调用的函数,没有附加条件判断叙述时可能会造成无限循环的错误情形.
函数递归调用最大的好处在于可以精简程序中繁杂重复调用程序,并且能以这种特性来执行一些较为复杂的运算动作。

<?php
    /**
        声明一个名称为test的函数,用于测试递归
        $param  int $n  需要一个整数作为参数
    */
    function test( $n ) {             //声明一个名为test的函数,有一个参数
        echo $n."&nbsp;&nbsp;"; //在函数开始处输出参数的值和两个空格 
        if($n>0)                            //判断参数是否大于0
            test($n-1);                    //如果参数大于0则调用自己,并将参数减1后再传入
        else                                  //判断参数不大于0
            echo " <--> ";                //输出分界字符串
        echo $n."&nbsp;&nbsp;"; //在函数结束处输出参数的值和两个空格
    }
    test(10);                                //调用test()函数将整数10传给参数

例 test.php

<?php
    $dirname = "./phpmyadmin";
    function fordir($dirname) {
        //打开目录资源
        $dir = opendir($dirname);
        readdir($dir);
        readdir($dir);
        while( $file = readdir($dir)) {
            $nfile = $dirname.'/'.$file;
            if(is_dir($nfile)){
                echo "目录: {$nfile}<br>";
                fordir($nfile);
            } else {
                echo "文件: {$nfile}<br>";
            }   
        }
        closedir($dir);
        //关闭
    }
    fordir($dirname);
/*
 *  
 *  在函数中调用自己就是递归函数
 *  
 */
/*
    function test($n) {
        echo $n."<br>";
        if($n > 0)
            test($n-1);
        else
            echo "---------------<br>";
        echo $n."<br>";
    }
test(10);

 */


    

































最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容