编程语言
首页 > 编程语言> > php – Hack – 如何检查实例是否使用了Trait?

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

作者:互联网

如何检查类的实例是否使用特征?我无法使用instanceof,因为Trait是不可实现的.

解决方法:

您可以将ReflectionObjectgetTraitsgetTraitNames功能一起使用:

trait test {
    public function hello()
    {
        echo "hello";
    }
}

class A {
    use test;
}

function hasTrait($object, $traitName)
{
    $reflection = new ReflectionObject($object);

    return in_array($traitName, $reflection->getTraitNames());
}

$a = new A();

if(hasTrait($a, 'test')) {
    echo "Object of class 'A' has 'test' trait \n";
}

标签:hacklang,php
来源: https://codeday.me/bug/20190727/1550613.html