2014-10-17 42 views
0

我有最難的時間搞清楚如何在function中使用foreach。我已將代碼重寫爲最簡單的形式,仍然無法運行。這是什麼,我試圖做簡單的版本:如何在函數內部使用foreach

$arr = array("first","second","third"); 
function myFunction(){ 
    foreach($arr as $val){ 
    echo $val.' | '; 
    } 

} 
myFunction(); 

我知道解決的辦法必須是那些「衛生署」的時刻之一,但我必須冒險尷尬,因爲我不能讓它...

回答

1

在PHP中,全局變量需要在函數內部加以說明。你只需要用全局變量來說你,否則PHP將不知道。所以你只需要像這樣添加global $arr;

$arr = array("first","second","third"); 
function myFunction(){ 
    global $arr; // <-- This states we are using the $arr defined globally. 
    foreach($arr as $val){ 
     echo $val.' | '; 
    } 
} 
myFunction(); 
+0

非常好,我應該知道範圍,所以我可以把數組放在我的函數中,如果我不需要它在其他地方? – user3762169 2014-10-17 04:10:21

+0

@ user3762169是的,如果你不需要它,你可以在函數中定義它。 – 2014-10-17 04:11:51

0
$arr = array("first","second","third"); 
function myFunction($target){ 
    foreach($target as $val){ 
    echo $val.' | '; 
    } 

} 
myFunction($arr);//$arr will send to function for process 

試試吧!

+0

當我運行它時它自行工作良好,但我需要更多地瞭解爲什麼我需要將$ target參數放在函數中。我需要將約10個變量傳遞給我的foreach中使用的函數,我不確定$ target會在哪裏發揮作用? – user3762169 2014-10-17 04:06:19

+0

這是我的名字變量。該函數需要處理該參數,這是一個傳遞變量。有兩種方法可以做到這一點。首先像我的答案,其次是使用全局變量。你可以閱讀這個[教程](http://www.w3schools.com/php/php_functions.asp) – 2014-10-17 04:13:45

0

你也可以將數組傳遞給函數。

$arr = array("first","second","third"); 
function myFunction($arr){ 
    foreach($arr as $val){ 
    echo $val.' | '; 
    } 

} 
myFunction($arr);