trait技术
trait是php5.4以后新增加的一个功能,可以将多个类中,共用的一些属性和方法提取出来做来公共trait类。
trait类似小插件,可以用use放在类中间,让trait里面定义的方法作为class的一部分,本身不能直接实例化
interface里面的方法都是虚拟的,需要在继承的时候对这些方法进行重定义,也就是说,方法是说明性质的,并没有实际操作,而你在继承的时候,需要对方法进行function,不然就会出错,而且不能缺失。
属于一种编码的规范把
trait可以互相嵌套,一个trait类中可以用use导入另一个trait类.
例如:
<?php
class a
{
public $name = 'a';
public function hello1()
{
echo 'a::hello1()';
}
}
trait b
{
public $name = 'b';
public function hello2()
{
echo 'b::hello2()';
}
}
//创建Demo1类
class Demo
{
use a;
use b;
}
$obj = new Demo;
$obj->hello1(); //此处会报错,原因a是一个类而不是trait
$obj->hello2();