首頁  >  文章  >  後端開發  >  php遞歸無法回傳問題,遞歸正確寫法

php遞歸無法回傳問題,遞歸正確寫法

不言
不言原創
2018-04-20 11:36:281549瀏覽

這篇文章介紹的內容是關於php遞歸無法返回問題,遞歸正確寫法,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

常規寫法

function digui($tiaojian){
    if ($tiaojian) {        return  $data;
    }    else{        return digui();
    }
}


注意:條件不成立時,一定要return 遞歸函數。不然無法正常回傳

如果遞迴只是為了輸出。可以簡寫:

function digui($tiaojian){
    if ($tiaojian) {        echo $data;
    }    else{
        digui();
    }
}

引用寫法

function digui($tiaojian,&$result){
    if ($tiaojian) {        $result=$data;
    }    else{
        digui();
    }
}

靜態變數

function digui(){
    static $count=0;    echo $count;    $count++;
}

digui();
digui();
digui();
digui();
digui();

輸出結果為:0 1 2 3 4
注意:靜態變數方法一定要謹慎使用。因為每次呼叫該方法的時候,都會對原來最早定義這個變數方法的基礎上去操作。

甚至unset 對靜態變數也無法銷毀

function digui(){
    static $count=0;    echo $count;    $count++;    unset($count);
}

digui();
digui();
digui();
digui();
digui();

這段程式碼依舊輸出0 1 2 3

相關推薦:

##php遞歸函數實例分析


以上是php遞歸無法回傳問題,遞歸正確寫法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn