PHP类实例化来自变量和使用关键字

时间:2013-12-08 17:49:31

标签: php objectinstantiation

我可以问一下澄清吗?在我的文件的顶部我使用(Silex上下文):
use Symfony\Component\Validator\Constraints as Assert;

假设我有一个数组$asserts,其中断言名称为字符串:

'Assert\\NotBlank()', 'Assert\\Date()'

当我试图

foreach($asserts as $constraint) {
  array_push($some_other_array, new $constraint)
}

我找不到类Assert \ NotBlank(),但是当我明确地创建新实例时

foreach($asserts as $constraint) { 
  array_push($some_other_array, new Assert\NotBlank())
}
一切正常。我做错了什么?

编辑:我尝试使用和不使用() ,并使用完整的课程路径。

解决方案:应使用没有括号的完整路径数组。

'Symfony\Component\Validator\Constraints\NotBlank',
'Symfony\Component\Validator\Constraints\Date'

最诚挚的问候,
卡米尔

1 个答案:

答案 0 :(得分:0)

尝试一个数组:

'Assert\\NotBlank', 'Assert\\Date'

array_push($some_other_array, new $constraint());

Per:dynamic class names in php