2010-02-13 39 views
0

我正在一個新的最小項目上工作,但我有一個錯誤,我不知道爲什麼。PHP Foreach數組作爲函數中的錯誤(foreach中的無效參數在...)

通常,我使用的陣列後,我首先創建他們帶有$array = array();

但在這種情況下,我創建它沒有這個代碼,下面有一個例如全碼,並輸出錯誤:

<?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(); 
?> 

我創建數組$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 2010-02-13 19:45:14