我试图将随机数附加到不同数量的字符。谁能告诉我为什么这不起作用?
$userName = $_SESSION['username'];
if(strlen($userName == 3)){
$userName = $userName . rand(000,999);
}
else if (strlen($userName == 4)){
$userName = $userName . rand(00,99);
}
else if (strlen($userName == 5)){
$userName = $userName . rand(0,9);
}
echo "<br>" . $userName;
答案 0 :(得分:4)
变化:
if(strlen($userName == 3))
要:
if(strlen($userName) == 3)
对其他两个条件重复修正。
这将解决您的语法错误,但我会以不同的方式解决此问题:
while (strlen($userName) < 6)
{
$userName .= rand(0,9);
}
答案 1 :(得分:1)
000
仍为0
。相反,请使用sprintf()
明确指定您想要的零个数。
$missingLen = 6 - strlen($username);
if($missingLen > 0) {
$username = sprintf('%s%0'.$missingLen.'d', $username, rand(0, pow(10, $missingLen) - 1));
}
答案 2 :(得分:0)
不知道什么不起作用:尝试将数字显式地转换为字符串:
$userName .= (string)rand(0, 999);