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