2014-10-12 6 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

+0

funtion은 다음과 같은 매개 변수를 받아 들여야합니다. function ran ($ q) – JimL

+0

ran() 함수에 $ q 변수 선언이 있어야합니다. 나는 PHP의 전문가는 아니지만, ran()의 $ q가 배열 $ q –

답변

3

전역 변수는 일반적으로 함수 내에 표시되지 않습니다. 당신은 함수 매개 변수 목록에 $q을 넣어해야합니다

echo ran($q); 
1

예, 매개 변수로 $ q를 추가 :

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

다음으로 문의하십시오. 또한 인덱스 $ 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]; 
} 
관련 문제