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