<?php
/**
* Trait解决PHP单继承的一种方法,使开发人员在不同层次结构的类中复用属性和方法
* Trait无法实例化
* Trait不是类,不能被继承,所以不能再Trait中不能声明抽象方法
* Trait中无法声明常量
* ThinkPHP中Trait有应用
*/
//声明一个Trait
trait Name
{
public function getName()
{
return '张三';
}
}
//声明一个Trait
trait Say
{
public function say() {
return 'world';
}
}
//声明一个类
class Lang
{
//导入Trait(导入多个Trait用,分隔)
use Name,Say;
public function sayPhp()
{
return 'php';
}
}
class Chinese extends Lang
{
public function show()
{
return $this->getName().'会说'.$this->say().',还会说'.$this->sayPhp();
}
}
$ch = new Chinese();
echo $ch->show();