0

私は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ランダムな結果が生成されるのか、それともページの読み込みごとに 1 回だけランダムな結果が生成されるのかということです。(つまり、$song が定義されると、それは永久に定義されます。) ...後者であることを願っています。

4

1 に答える 1

1

私の質問は、$song をリクエストするたびにランダムな結果が生成されるのか、それともページの読み込みごとに 1 回だけランダムな結果が生成されるのかということです。

いいえ、そうはなりません。関数を呼び出すたびにランダムな結果が生成array_randされます。ページの読み込みごとに 1 回呼び出すと、ページが読み込まれるたびにランダムな結果が 1 つだけ生成されます。


一般に、変数にアクセスするたびに、その特定の行で変数を変更することはほとんどありません。特に、例を単純化します(rand指定された最小値から最大値までの数値を選択します):

$x = rand(0, 9);

たとえば7、数値が選択された場合、 への複数回のアクセスは$xその値を変更しません。明示的な代入 (または、副作用$x = yのあるクラスまたは関数に渡す) のみが、その値を変更する可能性があります。

7から選択することを検討rand:

echo $x;
echo $x;
echo $x;

印刷されます777

于 2013-04-22T18:36:18.250 に答える