我有以下递归函数,如果它必须循环一次将不会返回任何东西。我可以在返回条件中回显用户名,并在循环后显示正确的用户名,并带有附加数字(例如jdoe_45),但不会返回。这个递归PHP函数为什么不起作用?
function createUsername ($conn, $firstname, $lastname, $numerate = false) {
$fn = preg_replace("/[^A-Za-z0-9 ]/", '', $firstname);
$ln = preg_replace("/[^A-Za-z0-9 ]/", '', $lastname);
$arg = ($numerate) ? '_' . rand(11, 99) : '';
$username = strtolower(substr($fn, 0, 1) . $ln . $arg);
$sql = "SELECT * FROM users WHERE username = '$username'";
$rs = mysql_query($sql, $conn) or die ("Could not execute query.");
$num = mysql_numrows($rs);
if ($num == 0) {
return $username;
}
createUsername($conn, $firstname, $lastname, 1);
}
谢谢。这解决了它。不知道那个。 – drpudding