php trait 简明教程,多重继承的实现方案
来源:互联网 发布:闪恋 知乎 编辑:程序博客网 时间:2024/05/18 02:19
自 PHP 5.4.0 起,PHP 实现了代码复用的一个方法,称为 traits。
Traits 是一种为类似 PHP 的单继承语言而准备的代码复用机制。Trait 为了减少单继承语言的限制,使开发人员能够自由地在不同层次结构内独立的类中复用方法集。Traits 和类组合的语义是定义了一种方式来减少复杂性,避免传统多继承和混入类(Mixin)相关的典型问题。
Trait 和一个类相似,但仅仅旨在用细粒度和一致的方式来组合功能。Trait 不能通过它自身来实例化。它为传统继承增加了水平特性的组合;也就是说,应用类的成员不需要继承。
在我理解说白了就是在继承类链中隔离了子类继承父类的某些特性(就是子类“要用父类的特性的时候”,如果trait有,就优先调用trait的方法、属性等)。
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php
trait
MyTrait
{
protected
$var
=
"MyTrait_var"
;
protected
$var1
=
"MyTrait_var"
;
function
__construct()
{
echo
$this
->
var
.PHP_EOL;
}
function
a()
{
echo
"a"
.PHP_EOL;
}
}
interface
MyInterface
{
function
__construct();
function
b();
}
abstract
class
MyAbstract
{
protected
$var2
=
"MyAbstract_var"
;
use
MyTrait;
function
b()
{
echo
"b"
.PHP_EOL;
}
}
class
MyClass
extends
MyAbstract
implements
MyInterface
{
protected
$var3
=
"MyClass_var"
;
//也可以在这里引用,不区分继承关系
//use MyTrait;
function
c()
{
echo
"c"
.PHP_EOL;
}
}
$class
=
new
MyClass();
$class
->a();
$class
->b();
$class
->c();
输出结果
MyTrait_var
a
b
c
总结:
0 0
- php trait 简明教程,多重继承的实现方案
- php 多重继承的替代方案trait
- PHP 5.4 的 Trait 特性_实现类的多重继承
- 0015.scala的多重继承、多重继承构造器执行顺序、基于trait的AOP实现
- php实现多继承-trait语法
- Scala:基于trait的多重继承构造器的执行顺序、基于trait的AOP实践
- 基于trait的多重继承构造器的执行顺序、基于trait的AOP实践
- 【多继承】PHP使用trait或者是组合的模式来实现多继承【原创】
- php学习笔记--trait的使用(为实现多继承产生)
- trait 继承的Demo
- php利用接口实现类的多重继承
- PHP手册-对于单继承语言的扩展Trait
- php的trait特性
- php多重接口的实现
- 多重继承多态的实现
- lua 多重继承的实现在
- js实现多重继承的例子
- lua 多重继承的实现在
- Struts2 java.io.FileNotFoundException
- redis 集群搭建过程及搭建问题处理
- Coursera吴恩达机器学习课程 总结笔记及作业代码——第4周神经网络
- J
- break跳出循环用法
- php trait 简明教程,多重继承的实现方案
- Java设计模式透析之 —— 策略(Strategy)
- 僵尸进程和孤儿进程
- angular-cli安装步骤
- Python基础五
- 基数排序之数组中缺失的数字
- Java中String类通过new创建和直接赋值字符串的区别
- break与continue
- container_of分析