我正在用PHP编写一个Authentication类,当我有以下函数时,
private function randomString($length = 50) {
$characters = "1234567890abcdefghijklmnopqrstuvwxyz";
$string = '';
for ($p=0; $p < $length; $p++) {
$string .= $characters[mt_rand(0, strlen($characters))];
}
return $string;
}
我收到以下错误:
Notice: Uninitialized string offset: 36
我是创建课程的新手,所以我不知道我在这里做错了什么。还是有更好的方法来生成随机字符串?
答案 0 :(得分:2)
最后一个字符索引为35,您需要使用strlen(...)-1
:
$string .= $characters[mt_rand(0, strlen($characters) - 1)];