书写技术成长之路

介绍PHP Trait

PHP Trait的特性

Trait是为类似PHP的单继承语言而准备的一种代码附中机制。 Trait为了减少减少单继承语言的限制,使开发人员能够自由地在不同层次结构内独立的类中复用method。 Trait和Class相似,但仅仅旨在用细粒度和一致的方式来组合功能。无法通过trait自身来实例化。它为传统继承增加了水平特性的组合;也就是说,应用的几个class 之间不需要继承。

PHP Trait的几个特性

  • Trait可以定义属性
  • Trait可以使用多个Trait
  • Trait可以修改方法的访问控制
  • 类可以通过逗号分隔,在use声明列出多个trait
  • 从基类继承的成员会被trait插入的成员所覆盖。优先顺序是来自当前类的成员覆盖了trait的方法,而trait则覆盖了被继承的方法。
<?php

trait HelloTrait
{
    public function sayHello()
    {
        echo "hello ";
    }
}

trait WorldTrait
{
    public function sayWorld()
    {
        echo "World"."\n";
    }
}

class HelloWorld
{
    use HelloTrait, WorldTrait;
}

$a = new HelloWorld;
$a->sayHello();
$a->sayWorld();

参考地址

  1. php-traits culttt
  2. php-official-documents