PHP中的加强型接口Traits

接口是对多重继承的一种变相实现, Traits可以被视为一种加强型的接口.

 
先来看如下代码
trait Hello
{
    private $name = 'chenqionghe';
    public function sayHello()
    {
        echo 'hello ';
    }
}
trait World
{
    public $age = '18';
    public function sayWorld()
    {
        echo 'world ! ';
    }
}
class HandsonBoy
{
    use Hello,World;
    public function say()
    {
        echo 'i am '.$this->name;
    }
}
$boy = new HandSonBoy();
$boy->sayHello();
$boy->sayWorld();
echo $boy->say();

上面代码的运行结果如下

这里的HandsonBoy同时实现了两个traits,从而使其可以分别调用两个Traits里的代码段.从代码就可以看出,traits和接口很像,不同的是traits是可以导入代码的接口.
从某种意义来说,traits和接口都是对"多重继承"的一种变相实现.
原文地址:https://www.cnblogs.com/chenqionghe/p/4735742.html