randomString函数生成错误?

时间:2015-05-14 05:07:30

标签: php

我正在用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

我是创建课程的新手,所以我不知道我在这里做错了什么。还是有更好的方法来生成随机字符串?

1 个答案:

答案 0 :(得分:2)

最后一个字符索引为35,您需要使用strlen(...)-1

$string .= $characters[mt_rand(0, strlen($characters) - 1)];