我有一个数组,可以在几秒钟内关联mp3文件及其各自的长度
$playlist = array( array("song" => "01.mp3","min" => "91"),
array("song" => "02.mp3","min" => "101"),
array("song" => "03.mp3","min" => "143"),
array("song" => "04.mp3","min" => "143"),
array("song" => "05.mp3","min" => "151")
);
我用array_rand()
...
$song = $playlist[array_rand($playlist)];
然后,稍后,我访问该数组中的值...
echo $song['song'];
//Then somewhere else...
echo $song['min'];
我的问题是,每次我请求$song
时,它是否会产生随机结果,还是每页加载只产生一次随机结果? (也就是说,一旦定义了$ song,它的定义是好的。)......我希望它是后者。
答案 0 :(得分:1)
我的问题是,每次我请求$ song时,它是否会产生随机结果,还是每页加载只产生一次随机结果?
不,它不会。每次调用array_rand
函数时,它都会生成随机结果。如果你在每页加载时调用一次,那么是的,每次加载页面时它只会产生一个随机结果。
通常,每次访问变量时,您很可能不会在该特定行中更改它。特别是,简化您的示例(rand
从最小值到最大值选择一个数字):
$x = rand(0, 9);
如果选择了一个数字,例如7
,那么对$x
的多次访问将不会更改其值。只有明确的$x = y
赋值(或将其传递给对其具有副作用的类或函数)才可能更改其值。
考虑从7
中挑选rand
:
echo $x;
echo $x;
echo $x;
将打印777
。