0

我用谷歌搜索并没有看到答案。我有一个数组,我存储在一个变量中,我试图传递给一个函数..

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

require('script.php'); //where actual function is

makeCode($myArr);

当我使用 makeCode(array('item1', 'item2')); 它工作正常.. 我什至尝试添加global $myArrmakeCode,但这也没有用。

我认为这是一个范围问题,但也许我在滥用字符串。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]";
            }
        }
  }

差不多就是这样。

4

1 回答 1

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

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

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

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

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

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

于 2013-02-21T01:49:44.413 回答