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


Calling a class in a namespace by variable in PHP

我有一个函数,它仅根据给定记录 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)

我怎样才能做到这一点?

只需在

对象初始化之前将命名空间附加到变量:

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