带有多维数组的php数组_rand()
我有一个数组,它以秒为单位关联mp3文件及其各自的长度带有多维数组的php数组_rand(),php,Php,我有一个数组,它以秒为单位关联mp3文件及其各自的长度 $playlist = array( array("song" => "01.mp3","min" => "91"), array("song" => "02.mp3","min" => "101"), array("song" => "03.mp3","min" => "143"), ar
$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\u rand()
从播放列表中挑选了一首歌曲
$song = $playlist[array_rand($playlist)];
然后,稍后,我访问该数组中的值
echo $song['song'];
//Then somewhere else...
echo $song['min'];
我的问题是,每次我请求$song
,它是会产生一个随机结果,还是每次页面加载只产生一次随机结果?(也就是说,一旦定义了$song,它就永远被定义了。)…我希望是后者
我的问题是,每次我请求$song时,它是会产生一个随机结果,还是每次页面加载只产生一次随机结果
不,不会的。每次调用array\u rand
函数时,它都会产生一个随机结果。如果您在每次页面加载时调用它一次,那么是的,它将在每次加载页面时只生成一个随机结果
通常,每次访问变量时,您很可能不会在该特定行中更改它。特别是,简化示例(
rand
从指定的最小值到最大值选择一个数字):
如果选择了一个数字,比如说7
,那么对$x的多次访问将不会改变其值。只有显式的$x=y
赋值(或将其传递给对其有副作用的类或函数)可能会更改其值
考虑从rand
中选择7
:
echo $x;
echo $x;
echo $x;
将打印777
仅在创建时分配$song
,在该请求/变量生命周期的剩余时间内,它将保持不变。$song值在页面加载时初始化,而不是每次
echo $x;
echo $x;
echo $x;