我的symfony 3 app中有一个类,它有一个方法,应该使用传入函数的名称动态实例化Model类,即:
static function getInstance($modelName){
use $modelName;
$r = new \ReflectionClass($modelName);
return $r->newInstanceArgs();
}
但use
指令存在语法错误。
我已经尝试为文件顶部的每个类添加特定的use
语句;我也尝试使用require
使用相应PHP文件的完全限定路径 - 但这两种方法都没有用。
请告知如何正确执行此操作。
答案 0 :(得分:0)
这个怎么样?使用合格的班级名称
static function getInstance($modelName){
$r = new \ReflectionClass('AppBundle\Entity\\' . $modelName);
return $r->newInstanceArgs();
}
答案 1 :(得分:0)
导入
的范围规则use关键字必须在文件的最外层范围(全局范围)或命名空间内声明中声明。这是因为导入是在编译时完成的,而不是运行时,所以它不能是块作用域。以下示例将显示非法使用use关键字:
示例#5非法导入规则
namespace Languages;
function toGreenlandic() {
use Languages\Danish;
}