Php 使用动态类

Php 使用动态类,php,symfony,Php,Symfony,我有一个如下的查询: $query = $this->getDoctrine()->getRepository(Personal::class)->data('p.uid, p.' . $column, $column, $value); 我希望个人充满活力。所以我试了一下: $table = 'Personal'; $query = $this->getDoctrine()->getRepository($table::class)->data('p.ui

我有一个如下的查询:

$query = $this->getDoctrine()->getRepository(Personal::class)->data('p.uid, p.' . $column, $column, $value);
我希望
个人
充满活力。所以我试了一下:

$table = 'Personal';
$query = $this->getDoctrine()->getRepository($table::class)->data('p.uid, p.' . $column, $column, $value);
但这不起作用,因此我收到错误消息:

编译错误:编译时不允许使用动态类名 ::类获取

如何使其成为动态的?

getRepository()
需要一个包含类名的字符串,而
Personal::class
会给出该类名。因此,您可以直接使用变量:

->getRepository($table)
根据代码布局,您可能需要添加命名空间:

->getRepository('My\\Repository\\Namespace\\' . $table)
getRepository()
需要一个包含类名的字符串,而
Personal::class
会给出该类名。因此,您可以直接使用变量:

->getRepository($table)
根据代码布局,您可能需要添加命名空间:

->getRepository('My\\Repository\\Namespace\\' . $table)

试试这样的

$table='Personal';
$query=$this->getDoctrine()
->getRepository(get_类(新$table))
->数据('p.uid,p.$column,$column,$value);

试试这样的方法

$table='Personal';
$query=$this->getDoctrine()
->getRepository(get_类(新$table))
->数据('p.uid,p.$column,$column,$value);

如果变量
$table
中有类名,就不能直接使用它吗?变量是如何定义的,在哪里定义的?为什么有人会否决这个问题?!这是一个明确的、定义明确的问题,具有最少的可重复代码,可以用需要知识而不是努力的明确答案来回答。如果您在变量
$table
中有类名,您就不能使用它吗?变量是如何定义的,在哪里定义的?为什么有人会否决这个问题?!这是一个明确的、定义明确的问题,代码的可重复性很小,可以用一个明确的答案来回答,这个问题需要的是知识而不是努力。如果
$table
已经包含了类的名称,为什么不直接使用它,而不是实例化类并在其上运行
get_class()
?你能不能回到你开始使用的字符串?我想你没有注意到使用
new
keywork使它成为object的一个实例。另外,我不认为这是毫无意义的,因为您将获得函数返回的完整名称空间。如果
$table
已经包含类的名称,为什么不直接使用它,而不是实例化类并在其上运行
get_class()
?你能不能回到你开始使用的字符串?我想你没有注意到使用
new
keywork使它成为object的一个实例。另外,我不认为这是毫无意义的,因为您将获得函数返回的完整名称空间。