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);

 */


    

































最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容