我使用以下代码来获取随机十六进制值.但输出不一致有时它返回6位有时5位数
function generateHexValue($length=6)
{
$chars = "0123456789abcdef";
$i = 0;
$str = "";
while ($i<$length) {
$str .= $chars[mt_rand(0,strlen($chars))];
$i++;
}
return $str;
}
$col=generateHexValue();
echo "<div style='background-color:#".$col."; width:100px; height:100px;'></div>";
echo $col."<br/>";
Run Code Online (Sandbox Code Playgroud)
你的电话mt_rand()应该最多strlen($chars)-1,而不是strlen($chars).最大值mt_rand包括在内.你可以从$chars数组的末尾得到一个索引(例如$chars[16],这是一个未定义的偏移量$chars).不确定PHP会做什么.
| 归档时间: |
|
| 查看次数: |
64 次 |
| 最近记录: |