加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 21:57:24 所属栏目:PHP教程 来源:网络整理
导读:如何检查类的实例是否使用特征?我无法使用instanceof,因为Trait是不可实现的. 解决方法 您可以将 ReflectionObject与 getTraits或 getTraitNames功能一起使用: trait test { public function hello() { echo "hello"; }}class A { use test;}function hasT
如何检查类的实例是否使用特征?我无法使用instanceof,因为Trait是不可实现的.

解决方法

您可以将 ReflectionObject与 getTraits或 getTraitNames功能一起使用:

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";
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读