2010-02-13 13 views
0

새로운 최소 프로젝트에서 작업하고 있는데 오류가 발생했습니다. 그 이유는 모르겠습니다.PHP에서 Foreach 배열이 함수에서 오류가 발생했습니다 (foreach의 잘못된 인수)

<?php $i = array('demo', 'demo'); $array['demo/demodemo'] = $i; ?> 
<?php $i = array('demo', 'demo'); $array['demo/demodemo2'] = $i; ?> 

<?php 
foreach($array as $a) 
{ 
    echo $a[0] . '<br>'; 
} 

function echo_array_demo() { 
    foreach($array as $a) 
    { 
     echo $a[0] . '<br>'; 
    } 
} 

echo_array_demo(); 
?> 

I : 처음 $array = array();

로 생성하지만,이 경우 나 에러를 출력하는, 코드없이 heres는 예를 들어 전체 코드를 만든 후

일반적으로, 나 배열을 사용 배열 $array에 대한 항목을 만들고 함수없이 foreach를 호출하면 작동합니다. 내가 함수에의 호출한다면, 다음 오류가

답변

2

기능은 자신의 변수 범위이 나는 ​​

감사합니다 왜 아무 생각이 없어했습니다

...납니다. 함수 밖에서 정의 된 변수는 자동으로 함수에 알려지지 않습니다.

global 키워드를 사용하여 함수에 변수를 "가져올"수 있습니다.

function echo_array_demo() { 

    global $array; 

    foreach($array as $a) 
    { 
     echo $a[0] . '<br>'; 
    } 
} 

함수에 알려진 변수를 만드는 또 다른 방법은 passing it as a reference입니다 :

function echo_array_demo(&$array) { 

    foreach($array as $a) 
    { 
     echo $a[0] . '<br>'; 
    } 
} 

echo_array_demo($array); 

체크 아웃 PHP manual on variable scope.

+0

확실히 ... 어떻게 잊을 수 있습니까? D 감사합니다! – ahmet2106

관련 문제