Php 随机字符串函数有时返回null

Php 随机字符串函数有时返回null,php,function,random,Php,Function,Random,我用它来生成一个0-3的随机数,它工作正常,只是偶尔会返回null,我不知道为什么。任何想法都很好 function genRandomString($length=1,$characters = '0123',$string = '') { for ($p = 0; $p < $length; $p++) { $string .= $characters[mt_rand(0, strlen($characters))]; } return $string; } 函数genR

我用它来生成一个0-3的随机数,它工作正常,只是偶尔会返回null,我不知道为什么。任何想法都很好

function genRandomString($length=1,$characters = '0123',$string = '') {
for ($p = 0; $p < $length; $p++) {
    $string .= $characters[mt_rand(0, strlen($characters))];
}

return $string; } 
函数genRandomString($length=1,$characters='0123',$string=''){
对于($p=0;$p<$length;$p++){
$string.=$characters[mt_rand(0,strlen($characters))];
}
返回$string;}
StrLen($characters)返回4 mt_rand(0,4)将产生从0到包括4的随机数

$characters的长度为4,所以您可以从$characters[0]到$characters[3]访问它。
如果您生成一个随机的4,那么您将访问$characters[4],因此您将得到null,为什么您需要一个用户创建的函数来实现本机PHP函数已经可以实现的功能呢

for($i = 0; $i < 100; $i++) echo mt_rand(0, 3) . "\n";
用于($i=0;$i<100;$i++)回声mt_rand(0,3)。“\n”;

ah,有没有快速解决方法?是的$string.=$characters[mt_rand(0,strlen($characters)-1)];欢迎光临。另外,尝试使用stereofrogs方法将error_reportong设置为E_ALL,这样您将得到错误消息。我认为您的示例必须是数字的,在不处理严格数字的sting时,也可以使用该函数。2。如果你想要一个样本,你可以。是的,但现在我们变得和使用函数一样复杂:)我同意。我的评论是对您所说的使用该函数的原因的回应:我使用它来生成一个随机数0-3让我们