数组不是';t被函数看到.将no-no存储在变量中


Array isn't being seen by function.. storing in variable a no-no?

我在谷歌上搜索了一下,没有找到答案。我有一个数组存储在一个变量中,我正试图将其传递给一个函数。。

$myArr = 'array('item1', 'item2')';
require('script.php'); //where actual function is
makeCode($myArr);

当我使用makeCode(数组('item1','item2')时;它很好用。。我甚至尝试过将global $myArr添加到makeCode,但也没有成功。

我认为这是一个作用域问题,但也许我滥用了字符串。print_r($myArr)打印正确,只是没有通过或其他什么。

这个函数基本上只是比较$myArr的值,如果它与函数数组中的值匹配,它就会输出正确的HTML,所以我没有列出它。它有效,只是变量无效。。谢谢

--makeCode()--
 function makeCode($listArr){
 /* global $myArr; //Tried this */
   $output = '';
   $items = array(
      'item1'        =>  "Code for item1",
      'item2'         =>  "Code for item2"
       )
   /* $myArr = $listArr; //tried this too */
        foreach ($listArr as $val) {
            if(array_key_exists($val, $items)){
                if(strlen($output)>0) $output .="|"; //Add Sytnax
                $output .="$items[$val]";
            }
        }
  }

差不多了。

$myArr = 'array('item1', 'item2')';

$myArr在这里是一个字符串。我不确定你是什么意思。尝试:

$myArr = array('item1', 'item2');

如果这就是你的意思,那么这将与调用不同

makeCode(array('item1', 'item2')); 

因为这是使用实际数组进行调用。