【问题标题】:Calling a class in a namespace by variable in PHP在 PHP 中通过变量调用命名空间中的类
【发布时间】:2013-09-09 18:35:32
【问题描述】:

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

我怎样才能做到这一点?

【问题讨论】:

    标签: php namespaces


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-17
      • 2017-05-20
      • 2019-11-13
      • 2016-11-26
      • 2014-01-31
      • 2014-09-30
      • 1970-01-01
      相关资源
      最近更新 更多