2014-10-17 125 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);