位置: 编程技术 - 正文

PHP中的Trait 特性及作用(php trait用法)

编辑:rootadmin

推荐整理分享PHP中的Trait 特性及作用(php trait用法),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php中的trim,php7 trait,php中td,php中td,php中的trim,php tr td,php tr td,php traits作用,内容如对您有帮助,希望把文章链接给更多的朋友!

自 PHP 5.4.0 起,PHP 实现了代码复用的一个方法,称为 traits。

Traits 是一种为类似 PHP 的单继承语言而准备的代码复用机制。Trait 为了减少单继承语言的限制,使开发人员能够自由地在不同层次结构内独立的类中复用方法集。Traits 和类组合的语义是定义了一种方式来减少复杂性,避免传统多继承和混入类(Mixin)相关的典型问题。

Trait 和一个类相似,但仅仅旨在用细粒度和一致的方式来组合功能。Trait 不能通过它自身来实例化。它为传统继承增加了水平特性的组合;也就是说,应用类的成员不需要继承。

Trait是在PHP5.4中加入的,它既不是接口也不是类。主要是为了解决单继承语言的限制。是PHP多重继承的一种解决方案。例如,需要同时继承两个 Abstract Class, 这将会是件很麻烦的事情,Trait 就是为了解决这个问题。它能被加入到一个或多个已经存在的类中。它声明了类能做什么(表明了其接口特性),同时也包含了具体实现(表明了其类特性)

简单使用

首先,当然是声明个 Trait,PHP5.4 增加了 trait 关键字

同时,如果要在 Class 中使用该 Trait,那么使用 use 关键字

使用多个 Trait

在同个 Class 中可以使用多个 Trait

Trait 之间的嵌套

PHP中的Trait 特性及作用(php trait用法)

同时,Trait 之间也可以相互的嵌套,例如

Trait 的抽象方法(Abstract Method)

我们可以在 Trait 中声明需要实现的抽象方法,这样能使使用它的 Class 必须实现它

Trait 冲突

多个 Trait 之间同时使用难免会冲突,这需要我们去解决。PHP5.4 从语法方面带入了相关 的关键字语法:insteadof 以及 as ,用法参见

上面就是些 Trait 比较基本的使用了,更详细的可以参考官方手册。这里总结下注意的几 点:

Trait 会覆盖调用类继承的父类方法

Trait 无法如 Class 一样使用 new 实例化

单个 Trait 可由多个 Trait 组成

在单个 Class 中,可以使用多个 Trait

Trait 支持修饰词(modifiers),例如 final、static、abstract

我们能使用 insteadof 以及 as 操作符解决 Trait 之间的冲突

PHP命名空间和自动加载类 PHP的命名空间(namespace)是php5.3之后才有的。这个概念在C#中已经很早就有了,php中的namespace其实和c#的概念是一样的。为什么php中要使用namespace?假设

初识PHP中的Swoole Swoole是一种PHP高级Web开发框架,框架不是为了提升网站的性能,是为了提升网站的开发效率。最少的性能损耗,换取最大的开发效率。利用Swoole框架,

PHP如何使用Memcached 一、memcached简介memcached是高性能的分布式内存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的

标签: php trait用法

本文链接地址:https://www.jiuchutong.com/biancheng/293264.html 转载请保留说明!

上一篇:PHP错误处理函数(php常见的错误级别)

下一篇:PHP命名空间和自动加载类(php命名空间和自由空间)

  • 外管证是在当地办理还是在外地办理
  • 农民专业合作社属于什么企业类型
  • 查询不到已经上市的股票
  • 出口退税发票必须是专票吗
  • 有限责任公司应当具备的条件
  • 费用和利润的比例
  • 股权投资类企业税收政策
  • 借别人的公账转账犯法吗
  • 开了增值税专用发票对方不付款可以申请冻结对方公帐嘛
  • 房产税逾期有滞纳金吗
  • 小型微利企业所得税优惠政策2023
  • 发票查询显示无数据怎么回事
  • 计提工资和实际发放工资
  • 退车辆保险费如何计算
  • 离婚后房产过户需要多少钱
  • 预计负债基本确定的概率区间
  • 简述linux系统
  • PHP:oci_lob_copy()的用法_Oracle函数
  • 带息应收票据的核算
  • Content-Disposition使用方法和注意事项
  • 收到现金股利或债券利息时会计分录
  • 处置动产减按2%税率是什么意思
  • 个体户对公账户怎么办理
  • 公司投资款无法收回
  • idea怎么运行前端vue项目
  • 应付账款账户的期初贷方余额100元
  • yolov5目标检测流程图
  • 前端发起请求怎么设置
  • echarts中的legend能被监听吗
  • 技术部周报怎么写
  • 大数据分析案例结论
  • 周末闲暇时光是什么意思
  • 若依框架前端发请求
  • yolov5源码解读
  • 增值税发票开了没有抵扣有什么后果?
  • 进口货物财务处理
  • mysql列表
  • 融资租赁业务的程序主要有
  • 如何升级智慧中小学app
  • 进项税额转出冲减进项税额吗
  • 不能税前扣除的业务招待费怎么处理
  • 工程用车折旧年限
  • 公司清算的特征
  • 个人所得税申请退税多久能到账
  • 生产成本与管理企业经营实战感想
  • 增值税普通发票查询真伪
  • 净资产增加数怎么计算
  • 股权转让需要哪些手续及流程
  • 住宿发票费率是多少
  • 以前年度的银行流水可以补进来做账嘛
  • 研发产品收入的会计分录
  • 工会经费可以购买办公用品吗?
  • 航天金税服务费发票在哪打印
  • 填写增值税纳税申报怎么填写?
  • 总分机构和分总机构的区别
  • 浅谈基于comsol的锂离子电池仿真
  • 安装mysql5.7虚拟机教程
  • windowsxp关机没反应
  • 戴尔电脑u盘快速启动
  • win10系统怎么设置不锁屏和休眠
  • win8.1启动设置
  • win7 蓝屏1e
  • win10怎么启用网卡
  • 批处理for命令详解
  • 写个置顶
  • django图片加载不出来
  • Unity C#用WWW操作数据库
  • Android - Designtime Layout Attributes & Tools Attributes
  • Intermediate Unity 3D for iOS: Part 2/3
  • js类继承的例子
  • python语言面向过程吗
  • python中创建自定义函数
  • 宁波镇海哪里可以赶海
  • 福建省地方税务局杨静
  • 税务八项规定日期怎么写
  • 12366纳税服务热线坐席人员
  • 如何查询税控盘口令和密码
  • 关于进一步加强工作纪律改进工作作风的通知
  • 湖北省国家税务局官网
  • 国税局北京税务局官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设