Hack - 如何检查实例是否使用了 Trait?

Cor*_* Wu 4 php hacklang

如何检查类的实例是否使用 Trait?我无法使用,instanceof因为 Trait 是不可实例化的。

Que*_*cia 6

Hack 是 PHP 的一个超级集(也是一个子集,因为一些遗留的东西被删除了),所以大多数原生函数都可以使用。

话虽如此,您拥有class_uses()函数,它可以满足您的需求。

这是一个简化的用例:

if (in_array(\Foo\Bar::class, class_uses($object))) {
    // Do something if $object is using \Foo\Bar trait
}
Run Code Online (Sandbox Code Playgroud)