OOP php:方法递归返回null


OOP php: Method recursion returns null

我创建了一个使拍卖名称具有网络安全性的方法,并且我刚刚添加了一个对重复网络名称的检查,该检查基本上尝试获取具有给定网络安全名称的拍卖,然后在网络名称中添加一个随机数。但该方法最终返回null。。。

private function dupplicateUrlFix($url){
    var_dump($url)//Correct
    $existingAuction = Auction::get($url, "webname");
    //if webname exists, cancatenate with random int, and check if new webname exists
    if(!empty($existingAuction->webname)){
        $newUrl = $existingAuction->webname.rand(0,9);
        $this->dupplicateUrlFix($newUrl);
        return;
    }
    var_dump($url) //Correct Not a dupplicate
    return $url;
}
public function get_url_clean($string) {
    $string = strToLower($string);
    //cleaning....
    //checks for dupplicate
    var_dump($this->dupplicateUrlFix($string)); //is null?
    die();
    return $clean;
}

我尝试过在duplicateUrlFix()方法中切换顺序,并简单地返回一个字符串。它只进入if(!空…一次。

有没有解决方案,或者更好的方法?

我认为这里不需要递归:

private function dupplicateUrlFix($url) {
    $existingAuction = Auction::get($url, "webname");
    while (!empty($existingAuction->webname)) {
        $url = $existingAuction->webname . rand(0, 9);
        $existingAuction = Auction::get($url, "webname");
    }
    return $url;
}