如何用变量替换动态类?

时间:2019-03-13 16:03:17

标签: php symfony class oop variables

我想用一个变量替换我的班级:

$type = "TextType";

$formBuilder->add($name, TextType::class, array('attr' => array('class' => 'form-control'), 'data' => $dataItem, 'mapped' => false, 'label' => $name));

这是我的方法:

$formBuilder->add($name, $type::class, array('attr' => array('class' => 'form-control'), 'data' => $dataItem, 'mapped' => false, 'label' => $name));

我得到了错误:

  

编译错误:在编译时不允许动态类名   :: class提取

但是我该怎么做?

1 个答案:

答案 0 :(得分:4)

错误告诉您不能使用动态类名。

所以你不能。

直接在add()调用中使用类名。如果确实需要,您甚至可以创建之前包含全限定类名的变量。

$class = TextType::class;

$formBuilder->add($name, $class,
     [
          'attr'   => ['class' => 'form-control'],
          'data'   => $dataItem,
          'mapped' => false,
          'label'  => $name
     ]
);