PHP中的函数不返回我的数组的值,为什么?

时间:2012-05-22 13:01:34

标签: php arrays return echo

我有一小段代码,我无法使其正常工作。

$dict = array('401003' => "Test")
function getID ($tempid) {
    $id = '<span title="'.$tempid.'">'.$dict[$tempid].'</span>';
    return $id;
}
echo getID('401003');
echo $dict['401003'];

我希望两次获得'测试',但只有第二次回声让我回到'测试'。 函数

中的$ dict [$ tempid]似乎有些问题

你能帮帮我吗?

2 个答案:

答案 0 :(得分:6)

这与variable scope有关,您无权访问函数内的$dict变量。您可以通过将$dict声明为全局来解决此问题,或者将其传递给您的函数,您可以像这样重构它:

function getID($tempId, $dict) {
    return '<span title="'.$tempid.'">'.$dict[$tempid].'</span>';
}

答案 1 :(得分:3)

getID看不到你的数组,你必须将它添加为参数或make $ dict global这一点通常是个坏主意:

$dict = array('401003' => "Test")
function getID ($tempid) {
    global $dict;
    $id = '<span title="'.$tempid.'">'.$dict[$tempid].'</span>';
    return $id;
}