PHP strlen - 根据字符串长度附加数字

时间:2011-09-25 23:35:24

标签: php

我试图将随机数附加到不同数量的字符。谁能告诉我为什么这不起作用?

$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;

3 个答案:

答案 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);