php-Trait
来源:互联网 发布:互联网电影数据库 编辑:程序博客网 时间:2024/06/10 06:09
概述
自PHP 5.4.0 起, PHP 实现了一种代码复用的方法,称为 trait.
作用
Trait是为类似 PHP 的单继承语言而准备的一种代码复用机制。
Trait为了减少单继承语言的限制,使开发人员能够自由地在不同层次结构内独立的类中复用 method。Trait 和 Class 组合的语义定义了一个减少复杂性的方式,避免传统多继承和Mixin类相关典型问题。
以lavarel框架中的软删除需要引入的复用method
<?phpnamespace Illuminate\Database\Eloquent;trait SoftDeletes{ /** * Indicates if the model is currently force deleting. * * @var bool */ protected $forceDeleting = false; /** * Boot the soft deleting trait for a model. * * @return void */ public static function bootSoftDeletes() { static::addGlobalScope(new SoftDeletingScope); }}
优先级
优先顺序是来自基类的成员会被trait插入的成员所覆盖,当前类的成员则会覆盖trait的成员。
例:
// 创建一个基类class Base { public function show() { echo "hello "; }}trait New1 { public function show() { parent::show(); // 调用的是使用该类的父类的show方法,这个show方法必须存在,不存在就会报错 echo "world!"; }}class MyTest extends Base { // 复用了New1中的所有方法 use New1;}$o = new MyTest();// 调用该类的show方法,基类中的show和New1当中,都有show, New1当中的show会覆盖掉基类的show方法$o->show();
运行结构
hello word!
阅读全文
0 0
- php trait
- php trait
- PHP TRAIT
- PHP Trait
- PHP trait
- php trait
- PHP Trait
- php-Trait
- php trait
- php trait
- php trait 使用方法
- php手册之Trait
- php trait特性
- php的trait特性
- php中的trait
- php中的trait
- php中的trait
- php中的trait
- 银行
- ubuntu curl失败checking whether the C compiler works... no
- Java NIO系列教程(五) 通道之间的数据传输
- 反射机制
- websocket的java小实例
- php-Trait
- STL相关
- 序列化
- Java传统线程中的的互斥技术
- Java NIO系列教程(六) Selector
- map的增删改查说明
- redisLock redis分布式锁
- Python脚本练习-登录
- JAXP学习(2)简单示例