接口是对多重继承的一种变相实现, 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和接口都是对"多重继承"的一种变相实现.
时间: 2024-10-10 02:29:21