如何检查类的实例是否使用 Trait?我无法使用,instanceof因为 Trait 是不可实例化的。
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)