2.6PHP语言之Trait

1.Trait声明

trait 名称
{
    public function 方法名(): 返回类型 
    {
        //方法体
    }
}

Trait与接口的最大区别是:Trait包含了实现,而接口没有实现,则需要指定一个实现该接口的类。

Trait体内可声明静态属性、静态变量、实例属性、静态方法、实例方法,此处的实例属性和方法给导入此Trait的类使用。

Trait体内可声明常量。

Trait体内可声明抽象方法,具体类需要实现抽象方法。

Trait不可以被实例化。

2.导入Trait

//类导入trait
class 类名
{
    use trait名称1, trait名称N;
}
//类导入trait并使用as运算符
class 类名
{
    use trait名称1, trait名称N
    {
        //别名方法
        trait名称1::方法 as 别名;

        //修改方法访问控制
        方法 as 访问控制修饰符;

        //修改方法访问控制并别名方法
        方法 as 访问控制修饰符 别名;
    }
}
//trait导入trait
trait 名称
{
    use 另一个trait;
}

3.解析顺序

当前类trait 导入、从基类继承存在同名的成员时,解析顺序为:当前类的成员 -> trait 导入的成员 -> 从基类继承的成员

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/php/phplang/20502.html

(0)
上一篇 2021年2月6日 02:44
下一篇 2021年2月7日 03:40

相关推荐

  • 2.11PHP类型之生成器(Generator)

    1.生成器类与自定义类 生成器(Generator)类是PHP语言内置的类,与自定义类一样都实现了 Iterator 接口,提供对象迭代的实现方式。 1.1优势:性能更好 一个简单的例子就是使用生成器函数来重新实现 range() 函数。标准的 range() 函数需要在内存中生成一个数组包含每一个在它范围内的值,然后…

    PHP语言教程 2021年2月11日
    0300
  • 1.3PHP语言的标识符(Identifier)

    1.标识符 标识符必须以字母(A~Z 和 a~z)或 下划线(_) 开头,后续可以是任何字母(A~Z 和 a~z)、数字(0~9)或 下划线(_)。标识符区分大小写,函数名称例外。 2.命名约定

    PHP语言教程 2021年1月3日
    05660
  • 2.10PHP类型之可迭代(Iterable)类型

    iterable 类型是联合类型 array|Traversable 的别名。 1.Traversable接口 这个接口没有任何方法,它的作用仅仅是作为所有可遍历接口的基本接口。 2.Iterator接口 Iterator接口是Traversable接口的子接口。 3.Iterator接口的自定义实现 4.Genera…

    PHP语言教程 2021年2月10日
    0110

发表回复

登录后才能评论