traist php,php traits的作用有哪些?_后端开发

php traits的作用是针对php如许的单继续言语设想的,旨在让开发者很轻易的在差别继续系统的多个类之间公用一系列要领,以削减单继续带来的局限性。

f7eec0ea14c108f97fd0ea117e039b79.png

Traits是针对php如许的单继续言语设想的。旨在让开发者很轻易的在差别继续系统的多个类之间公用一系列要领,以削减单继续带来的局限性。Traits和class的连系,避免了多继续带来的一些列问题。

运用

起首看下官方文档给出的例子:

trait ezcReflectionReturnInfo {

function getReturnType() { /*1*/ }

function getReturnDescription() { /*2*/ }

}

class ezcReflectionMethod extends ReflectionMethod {

use ezcReflectionReturnInfo;

/* ... */

}

class ezcReflectionFunction extends ReflectionFunction {

use ezcReflectionReturnInfo;

/* ... */

}

?>

从上面的例子能够看出,特征集ezcReflectionReturnInfo包含了两个要领:getReturnType和getReturnDescription,而下面的两个子类离别继续自差别的父类,却能够经由过程use ezcReflectionReturnInfo来复用这两个要领。简朴轻易。

相干进修引荐:PHP编程从入门到通晓

注意事项

假如子类、父类、use的traits中存在重名要领,那末这三个要领的优先级为:子类 > tratis > 父类;

能够同时use多个traits,但不可use重名的traits;

假如use的多个traits中存在要领名争执,能够运用指定某个要领来自于某个tratis。比方:

trait A {

public function smallTalk() {

echo 'a';

}

public function bigTalk() {

echo 'A';

}

}

trait B {

public function smallTalk() {

echo 'b';

}

public function bigTalk() {

echo 'B';

}

}

class Talker {

use A, B {

B::smallTalk insteadof A;

A::bigTalk insteadof B;

}

}

要领能够运用as来设置别称,但只在该类有用。

class Aliased_Talker {

use A, B {

B::smallTalk insteadof A;

A::bigTalk insteadof B;

B::bigTalk as talk;

}

}

运用as的时刻,还能够改变要领的可见性。

class MyClass2 {

use HelloWorld { sayHello as private myPrivateHello; }

}

traits能够嵌套,比方A能够use B。

trait Hello {

public function sayHello() {

echo 'Hello ';

}

}

trait World {

public function sayWorld() {

echo 'World!';

}

}

trait HelloWorld {

use Hello, World;

}

traits中能够定义abstract要领,一样的,use该traits的class,也须要完成这些abstract的要领;

traits中能够定义通例变量、静态的变量和要领;

以上就是php traits的作用有哪些?的细致内容,更多请关注ki4网别的相干文章!

收藏 | 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值