我有这个 PHP 代码:
$char = array_merge(range('a', 'z'), range('A', 'Z'), range(0, 9));
$i = 0;
while ($i <= 5) {
$var .= $char[rand(0,68)];
$i++;
}
echo $var;
乍一看,它应该生成一个 6 个字符的字符串(例如:eVx97j)。
我大部分时间都这样做,但在某些情况下,它会回显 5 个和 4 个字符串。
我几乎可以肯定是因为这个:
(可能与问题无关)
[50]=>
string(1) "Y"
[51]=>
string(1) "Z"
[52]=>
int(0)
[53]=>
int(1)
[54]=>
int(2)
看到不同?
令我困惑的是,代码确实会生成带有数字的字符串。
那么你能发现这个错误吗?
这是 PHP 中表达 az + AZ + 0-9 个字符的正确方法吗?
提前致谢!!
请要求任何澄清!
顺便说一句:我也试过:$char = array_merge(range('a', 'z'), range('A', 'Z'), range('0',' 9'));