重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
php中的traits有什么用?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
10余年的巩留网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站的优势是能够根据用户设备显示端的尺寸不同,自动调整巩留建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联公司从事“巩留网站设计”,“巩留网站推广”以来,每个客户项目都认真落实执行。
简介
Traits是面向对象编程中使用的一种概念,它表示一组可用于扩展类功能的方法。Traits提供了一组实现行为的方法,并要求来实现一组参数化所提供行为的方法。对于对象间的通信(以及对象之间的共享),特性在面向对象的协议(接口)和mixin之间有所不同。界面可以通过方法签名来定义一个或多个行为,而特征通过完整的方法定义来定义行为:即,它包括方法的主体。相比之下,mixin包含完整的方法定义,并且还可以通过成员变量携带状态,而特征通常不会。
使用
首先看下官方文档给出的例子:
从上面的例子可以看出,特性集ezcReflectionReturnInfo
包含了两个方法:getReturnType
和getReturnDescription
,而下面的两个子类分别继承自不同的父类,却可以通过use ezcReflectionReturnInfo
来复用这两个方法。简单方便。
注意事项
如果子类、父类、use的traits中存在重名方法,那么这三个方法的优先级为:子类 > tratis > 父类;
可以同时use多个traits,但不可use重名的traits;
如果use的多个traits中存在方法名冲突,可以使用指定某个方法来自于某个tratis。例如:
方法可以使用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。
traits中可以定义abstract方法,同样的,use该traits的class,也需要实现这些abstract的方法;
traits中可以定义常规变量、静态的变量和方法;
关于php中的traits有什么用问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。