'使用'在symfony app中使用ReflectionClass时的指令

时间:2016-07-19 05:00:30

标签: php symfony

我的symfony 3 app中有一个类,它有一个方法,应该使用传入函数的名称动态实例化Model类,即:

static function getInstance($modelName){

    use $modelName;

    $r = new \ReflectionClass($modelName);
    return $r->newInstanceArgs();
}

use指令存在语法错误。

我已经尝试为文件顶部的每个类添加特定的use语句;我也尝试使用require使用相应PHP文件的完全限定路径 - 但这两种方法都没有用。

请告知如何正确执行此操作。

2 个答案:

答案 0 :(得分:0)

这个怎么样?使用合格的班级名称

static function getInstance($modelName){
    $r = new \ReflectionClass('AppBundle\Entity\\' . $modelName);
    return $r->newInstanceArgs();
}

答案 1 :(得分:0)

另外,按PHP USE Documentation:

  

导入

的范围规则      

use关键字必须在文件的最外层范围(全局范围)或命名空间内声明中声明。这是因为导入是在编译时完成的,而不是运行时,所以它不能是块作用域。以下示例将显示非法使用use关键字:

     

示例#5非法导入规则

namespace Languages;

function toGreenlandic() {
    use Languages\Danish;
}