trait trait_name{
public function function_name();
}
interface interface_name{
public function function_name();
}
- 在学php, 没实际经验, 感觉interface和trait很类似, 都是一种特殊的类.
- 等到需要的时候, 在当前类中写清具体方法, 在通过implement, extends, use等去调用它们.
- 这两种设计有什么精妙之处? 有什么区别呢?
- 看了下各种回答, 觉得挺有道理. trait和interface恰好相反,interface关心的是接口,把控全局, 把实现和细节丢给其他人,而trait完全不关心接口(约定),trait内部写好具体的功能细节, 其他人谁要用use引入就行. (正所谓复用代码). 而trait的"多继承", 在一个类中引入多个trait, 又进一步强化了"复用代码".