我的编程经验非常少,但我正在浏览一本php书,这段代码让我感到困惑。
如果rand生成一个随机整数,该程序如何在数组中使用ABCDEFG。 你能解释一下这个程序吗谢谢。我知道结果是什么,我只是不确定它是如何得到的。
<?php
$array = '123456789ABCDEFG';
$s = '';
for ($i=1; $i < 50; $i++) {
$s.= $array[rand(0,strlen($array)-1)]; //explain please
}
echo $s;
?>
答案 0 :(得分:5)
它使用数组索引,因此$array[11]
等于'C'
。 rand()
需要一个范围 - 在您的示例中,从0
到strlen($array)-1
这是字符串的长度,减去1,因为它是基于0的索引。< / p>
答案 1 :(得分:2)
将其分解为部分:
strlen($array) - returns the length of the string in $array, which would be 17
strlen($array) - 1 => 16
rand(0, 16) - generate a random number between 0 and 16
$array[$random_number] - get the $random_number'th element of the array
答案 2 :(得分:0)
它只使用strlen($array)
获取数组的长度。字符串中的长度是什么并不重要。然后它生成一个介于0和字符串长度减1之间的随机数。
然后它接受数组中该位置的任何字符(因此$array[5]
将为'6'
,$array[12]
将为'C'
等)并将其附加到字符串$s
。然后它有一个for循环重复它50次。
您最终得到的是一个50字符长的随机字符串,其中包含数字1-9和字母A-G。