在PHP中通过变量调用名称空间中的类

时间:2013-09-09 18:35:32

标签: php namespaces

我有一个函数,它根据一组记录显示一个表,只给出了记录的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)

我该如何做到这一点?

1 个答案:

答案 0 :(得分:1)

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

$m = '\\My\\New\\Namespace\\' . $m;