Эта функция возвращает NULL, а $ alias имеет значение во второй рекурсии. В первом вызове оно возвращает требуемое значение, но если первое, если оно не согласовано, и оно сначала перезаписывает требуемое значение в avilable в переменной $ alias, но ничего не возвращает.Рекурсивная функция PHP возвращает значение null, а переменная имеет значение
public function checkAlias($fname='',$lname=''){
if(!empty($fname)){
$fname = mysql_real_escape_string($fname);
}
if(!empty($lname)){
$lname = mysql_real_escape_string($lname);
}
$alias = strtolower($fname).strtolower($lname);
$sql = "Select ALIAS from table where ALIAS = '$alias'";
$query = mysql_query($sql);
$row = mysql_fetch_row($query);
$string_length = strlen($alias) - 1;
$result_string = substr($alias,0,$string_length);
if(!$row){
print $alias; // is printing value
return $alias; // but here it returns null
}else{
$this->checkAlias($result_string);
}
}
может быть, вы забыли вернуться до этой строки: '$ this-> checkAlias ($ result_string);'? – bwoebi