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();

posted @ 2018-03-09 16:06  Burning_Ice  阅读(125)  评论(0编辑  收藏  举报