注意:未初始化的字符串偏移量:-1

问题描述

网页正在返回注意:未初始化的字符串偏移量:-1.....在运行以下函数时的第 175 行:

function genRandomString() {

    $length = 26;

    $characters = '0123456789abcdefghijklmnopqrstuvwxyz';

    $string = "";    

    for ($p = 1; $p < $length; $p++) {

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

    }

    return $string;

    }

第 175 行可能有什么问题?

解决方法

您需要从 strlen 中减去,而不是从 mt_rand 中减去:

mt_rand(0,strlen($characters) - 1)

function genRandomString($length = 26) {
    $characters = implode('',range(0,9)) . implode('',range('a','z'));

    $string = '';
    $maxIndex = strlen($characters) - 1;

    for ($i = 1; $i < $length; $i++) {
        $string .= $characters[mt_rand(0,maxIndex)]; // <-- LINE 175
    }

    return $string;
}