2010-02-13 100 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