我创建了一种制作拍卖名称websafe的方法,我刚刚添加了对重复网页名称的检查,它基本上尝试使用给定的网络安全名称获取拍卖,然后在网络名称中添加一个随机数。但该方法最终返回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;
}
我尝试在dupplicateUrlFix()方法中切换顺序,只是返回一个字符串。它只进入if(!空......一次。
是否有解决方案或更好的方法?
答案 0 :(得分:1)
我认为这里不需要递归:
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;
}