<?php
/**
* trait是一种代码复用机制
* trait类是解决了PHP单一继承的问题,即一个子类只能继承一个父类,而一个父类可以被多个子类继承
* trait类不能被实例化
* trait类的同名方法的优先级为:本类同名方法,trait类同名方法,父类同名方法
* trait类中如果有两个同名方法,可以use triatName1,traitName2{traitName1::func insteadof trait2;trait2::func as trait2Func}
* 可以用use继承trait类中的方法
* 继承或者使用trait后,可以直接用$this->调用trait或者父类中的方法。
*/
trait Demo1
{
public function hello1()
{
return __METHOD__;
}
}
trait Demo2
{
public function hello2()
{
return __METHOD__;
}
}
class Demo
{
use Demo1,Demo2;
public function hello()
{
return __METHOD__;
}
public function test1()
{
return $this->hello1();
}
public function test2()
{
return $this->hello2();
}
}
$obj = new Demo;
echo $obj->hello();
echo '<hr>';
echo $obj->hello1();
echo '<hr>';
echo $obj->hello2();
PHP中的Trait类
猜你喜欢
转载自blog.csdn.net/weixin_38468437/article/details/82078381
今日推荐
周排行