1

我有一个函数,它根据一组记录显示一个表,只给定记录的 id。然后该函数通过从参数数组中提取的变量调用该类。这工作得很好......

function displayTable($arr) {
...
    foreach ($a['ids'] as $key => $arr) 
    {
        $m=$a['model'];
        $o = new $m($arr['id']);
    ...
    }
}

问题是我现在有一个命名空间中的类,以下不起作用并引发错误......

function displayTable($arr) {
...
    foreach ($a['ids'] as $key => $arr) 
    {
        $m=$a['model'];
        $o = new \My\New\Namespace\$m($arr['id']);
    ...
    }
}

解析错误:语法错误,意外的 '$m' (T_VARIABLE),需要标识符 (T_STRING)

我怎样才能做到这一点?

4

1 回答 1

1

只需在对象初始化之前将命名空间添加到变量:

$m = '\\My\\New\\Namespace\\' . $m;
于 2013-09-09T18:37:17.717 回答