我在谷歌上搜索了一下,没有找到答案。我有一个数组存储在一个变量中,我正试图将其传递给一个函数。。
$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'));
因为这是使用实际数组进行调用。