首页 > 解决方案 > 注意:未初始化的字符串偏移量:-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行可能有什么问题?

标签: php

解决方案


您需要减去 from strlen,而不是 from 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;
}

推荐阅读