1

我有一小段代码,我无法让它工作。

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

我希望得到两次“测试”,但只有第二个回声给我返回了“测试”。函数中的 $dict[$tempid] 似乎有问题

你们能帮帮我吗?

4

2 回答 2

6

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

function getID($tempId, $dict) {
    return '<span title="'.$tempid.'">'.$dict[$tempid].'</span>';
}
于 2012-05-22T13:03:50.007 回答
3

getID 看不到您的数组,您必须将其添加为参数或使 $dict 全局化,这通常是个坏主意:

$dict = array('401003' => "Test")
function getID ($tempid) {
    global $dict;
    $id = '<span title="'.$tempid.'">'.$dict[$tempid].'</span>';
    return $id;
}
于 2012-05-22T13:04:29.380 回答