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();