Hack(PHP)ReflectionClass失败,Map作为方法的默认属性

时间:2015-05-26 16:33:05

标签: php hhvm hacklang

如果方法的签名将Map集合作为参数的默认值,则在使用ReflectionClass检查该方法时会引发错误。

Cannot use collection initialization in non-collection class

该课程如下:

<?hh //strict
namespace Acme;

class Foo
{
    protected Map<string, string> $options;

    public function __construct(Map<string, string> $options = Map{})
    {
        $this->options = $options;
    }

}

时发生反射错误
$reflection = new ReflectionClass('Acme\Foo');

$reflection->getConstructor()->getParameters();

该类在实际使用时正确实例化。我只能使用Reflection创建错误。

问题

是否有一些我做错了,或者我缺少的概念,让这项工作按预期进行?我希望getProperties返回方法的属性,就像它对任何其他值/类型一样。

1 个答案:

答案 0 :(得分:0)

这看起来像个错误。请file it on our GitHub issue tracker