function createStr($num = 700, $len = 6){
$numbers = range(0, 9);
$letters = range('a', 'z');
$uppers = range('A', 'Z');
$elements = array_merge($numbers, $letters, $uppers);
$n = 0;
$strings = [];
for($i = 0;$i < $num;$i++){
$str = '';
$keys = array_rand($elements, $len);
foreach($keys as $key){
$str .= $elements[$key];
}
if(in_array($str, $strings)){
$i--;
unset($str);
}else{
$strings[] = $str;
unset($str);
// echo $i. '->' .$str. "\r\n";
}
$n++;
}
print_r($strings);exit;
// echo "\r\n\r\n".$n;
}
问题:
当使用 $strings 数组保存时,在 $num = 630 以上时会造成无响应(命令行也是不出结果,一直跑),而630以下,则正常。
P.S. 目前只测了 $len = 6 的情况。
P.S.2 当使用正常的 echo 时,程序可以跑通。