1. 程式人生 > >php遞迴無法返回問題,遞迴正確寫法

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