首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未初始化字符串偏移量

未初始化字符串偏移量
EN

Stack Overflow用户
提问于 2013-04-04 03:05:02
回答 1查看 2.5K关注 0票数 0
代码语言:javascript
复制
protected static function generateString ($length = 50, $Password){
        $characters = $Password;
        $string = '';

        for ($p = 0; $p < $length; $p++) {
            $string .= $characters[mt_rand(0, strlen($characters))]; // Error Line
        }
        echo $string;
    }

你好。我正在构建一个身份验证类,上面的函数给了我一些遗憾,我一直收到错误消息:

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

回声是为了测试目的而存在的。

我使用以下方法调用我的函数:

代码语言:javascript
复制
 public static function Compile($Password, $Length){
        self::generateString($Length,$Password);
    }

Auth::Compile('testi ngpassword', 10);

当我运行我的脚本时,有时它生成时没有错误消息;但是当运行多次(3-7次)时,我会得到上面指定的消息?有时候这个告示会超过两行?

那么,为什么在重复运行时会随机生成错误消息呢?什么时候指定的参数没有变化?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-04 03:08:45

考虑到这一行:

代码语言:javascript
复制
strlen($characters)

如果字符串长度为16,并在0和16之间进行随机数字选择,则给它在最后一个之后选择索引的选项,这是没有意义的。你得赶过去

代码语言:javascript
复制
strlen($characters) - 1

因为指数实际上从0开始;

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15801836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档