2014-10-12 51 views
0

我試着下面的代碼從數組中打印一個隨機值70次,但我得到一個錯誤:'array_rand()期望參數1是數組'。array_rand()期望參數1爲數組

$q= array("top","below","right","left"); 
function ran(){ 
    $rand_keys = array_rand($q, 1); 
    return $rand_keys[0]; 
} 

for ($m=0; $m <70 ; $m++) { 
    ran($q); 
    echo ran(); 
} 
+3

你應該通過'$ q'的功能。否則,'$ q'超出了函數的範圍,並且未定義。 – Boaz 2014-10-12 08:53:59

+0

funtion ran需要接受一個參數,比如:function ran($ q) – JimL 2014-10-12 08:54:15

+0

我想你的ran()函數必須聲明$ q變量。我不是php的專家,但我認爲ran()中的$ q會影響數組$ q – 2014-10-12 08:54:47

回答

3

全局變量通常在函數內部不可見。你應該把$q在函數參數列表:

function ran($q) { 
    $rand_keys = array_rand($q, 1); 
    return $rand_keys[0]; 
} 

然後稱其爲:

echo ran($q); 
1

是,加$ Q作爲參數。 另外,您應該在索引$ rand_key處返回$ q的值。 你有點想念使用array_rand返回值。

給你這個代碼:

$q = array("top","below","right","left"); 

for ($m = 0; $m <70 ; $m++) { 
    echo ran($q).' '; 
} 

function ran($q){ 
    $rand_keys = array_rand($q, 1); 
    return $q[$rand_keys]; 
} 
相關問題