位置: 编程技术 - 正文

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命名空间和自由空间)

  • 购买免税产品的app
  • 非商业性旅游服务
  • 增值税专用发票抵扣最新规定
  • 交所得税用计提吗
  • 注册税务师报名条件
  • 购买股票交易费用计入
  • 出库入库结存表
  • 个人所得税如果两份工作怎么扣
  • 小规模申报增值税怎么申报
  • 岗位津贴和岗位补贴
  • 进项多少就开多少的票吗
  • 学生是纳税人吗为什么
  • 凭证可以部分冲销吗
  • 公司没有员工怎么零申报
  • 选择纳税人身份考虑的因素
  • 如何查询以前申诉进度
  • 建筑工程企业人力资源管理
  • 录入凭证时记账的依据是
  • 收购未税矿产品的其他单位,其纳税地点为收购地
  • 汇算清缴发现以前预缴报表资产错误
  • 增值税发票跨年了还能用吗
  • 票据贴现公司需要资质吗
  • 报销伙食费的会计分录
  • php中cookie的值存储在哪
  • xshell怎么用vim
  • 申请开立临时存款账户
  • PHP:class_implements()的用法_spl函数
  • 职工工伤住院费用记什么科目
  • 带息票据和不带息票据区别
  • vue2 vue-router 不显示页面问题
  • yolov5 anchors 中 K-means聚类
  • 贝尔纳贝
  • 对方代垫保险费算不算入账价值
  • 出口退税退运费的税吗
  • 人力资源公司如何找客户
  • 企业进行材料清查盘点中盘盈的材料
  • 其他资本公积可以冲减吗
  • 金蝶利润表出现科目
  • 平台的分销佣金是多少
  • 无形资产界定
  • 名为股权转让实为房地产转让
  • 车船税发票可以抵扣吗
  • 建设工程项目设计阶段的投资控制方法有哪些
  • 净资产利润率的公式是什么
  • 公司房产税如何避税
  • 施工单位结算
  • 差旅费中住宿费的标准是什么
  • 电子发票一定要盖章吗
  • 工程结算与开票的关系
  • 内账外账用一个云盘可以吗
  • sql server 2012 数据库bak脚本还原
  • mysql 全量备份
  • win7系统IE浏览器版本
  • macbook如何使用word
  • winxp系统控制面板
  • ubuntu20.0安装
  • SymSPort.exe - SymSPort是什么进程 有何作用
  • win7怎么禁止系统自动更新
  • 2021年win10累积更新
  • win7系统显卡驱动在哪个文件夹
  • ie9收藏夹
  • windows10x预览版
  • linux中的vi编辑器一般有哪三个模式
  • cocos2dx 3.4 Label中文显示
  • dos的命令大全
  • jQuery使用$.ajax进行异步刷新的方法(附demo下载)
  • jquery结合html实现中英文页面切换
  • Node.js中的construct构造函数
  • cygwin下载教程
  • python用while循环求π的值
  • js上滑翻页
  • android中的webview
  • unity2d摇杆
  • jquery源码解析
  • 换发票需要交钱吗
  • 安徽省定额发票真伪查询
  • 国家税务总局郴州
  • 重庆准生证网上怎么申请领取
  • 目前长沙二手房出售信息
  • 代账公司盈利水平如何
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设