在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/PHP  C++/ 關(guān)于PHP簡單遞歸查詢問題

關(guān)于PHP簡單遞歸查詢問題

public function randRateCode()
    {
        $rate = randpw(); //隨機(jī)生成一個字符串
        $rs = $this->Agent->where("rate='".$rate."'")->find();
        //查詢這個字符串在數(shù)據(jù)庫中是否純在
        if($rs){
            //如果存在
            $rate = $this->randRateCode();
        }
        return $rate;
    }

代碼如上,我隨機(jī)生成一個字符串,然后去數(shù)據(jù)庫匹配,如果匹配到,則遞歸該方法,最后返回這個字符串

我的問題是

我最終return的值,是合法的(數(shù)據(jù)庫不存在的)還是不合法的(數(shù)據(jù)庫存在的),為什么!為什么!為什么!

我是這么理解的,最終 return 是合法的

因為當(dāng)不合法的時候,return 保留執(zhí)行(沒有立即執(zhí)行),當(dāng)合法的時候,立即執(zhí)行 return ,函數(shù)在return后立即終止,不會再去執(zhí)行之前未執(zhí)行的 return …

回答
編輯回答
不討囍

1.這種不需要用遞歸,用do-while就行
2.答案是合法的,但是你的理解是錯誤的

因為當(dāng)不合法的時候,return 保留執(zhí)行(沒有立即執(zhí)行),當(dāng)合法的時候,立即執(zhí)行 return ,函數(shù)在return后立即終止,不會再去執(zhí)行之前未執(zhí)行的 return …

return只會終止當(dāng)前調(diào)用,不會終止父調(diào)用,所以return會一直執(zhí)行

2018年5月11日 14:58
編輯回答
黑與白

合法的啊, 會一層一層return回來

2017年8月6日 10:02