ООП php: метод рекурсии возвращает ноль

Я создал метод создания веб-сайтов с именами аукционов и просто добавил проверку на дубликаты веб-имен, которая в основном пытается получить аукцион с указанным именем веб-сайта, а затем добавляет случайное число к имени сети. Но метод заканчивает тем, что возвращает нуль …

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

Я попытался переключить порядок в методе dupplicateUrlFix () и просто вернуть строку. Это входит только в if (! Empty … один раз.

Есть ли решение для этого или лучший подход?

0

Решение

Я думаю, что здесь нет необходимости в рекурсии:

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;
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]