资讯专栏INFORMATION COLUMN

关于PHP的Trait特性

wind3110991 / 352人阅读

摘要:关于作者程序开发人员,不拘泥于语言与技术,目前主要从事和前端开发,使用和,端使用混合式开发。和组合的语义定义了一种减少复杂性的方式,避免传统多继承和类相关典型问题。它为传统继承增加了水平特性的组合也就是说,应用的几个之间不需要继承。

关于作者

程序开发人员,不拘泥于语言与技术,目前主要从事PHP和前端开发,使用Laravel和VueJs,App端使用Apicloud混合式开发。合适和够用是最完美的追求。

个人网站:http://www.linganmin.cn

最近刚写了一个手机在线播放的H5电影站:http://www.ifilm.ltd

什么是trait

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

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

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

简单示例
// 定义一个获商品信息的trait
trait GetGoodsInfo {
    // 
    public function getPrice() {

    }
}

// 定义一个商品类,类里面使用定义的trait,就相当于在这个类里面定义了一个getPrice的方法
class Goods{
    use GetGoodsInfo;
}
PHP官方文档关于trait的介绍

PHP中文文档 Trait实现代码复用方法

在Laravel中增加Trait的坑

使用PHPStorm新建Trait文件时一定要选新建PHP Class选项,然后会弹出如下对话框

如果在创建Trait文件时,没有选新建PHP Class选项而是选了新建PHP File选项,就算在新建的文件中加上命名空间在使用的时候还是会报错,报错这个trait无法找到

安小下同学

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/22456.html

相关文章

  • PHP 特性trait (一)

    摘要:在阅读文档的时候看到一个类是以声明的。是一种代码复用技术,为的单继承限制提供了一套灵活的代码复用机制。下面把的代码做一个修改以上代码会输出。可以看出优先级的顺序为,当前类的优先级基类。   在阅读laravel文档的时候看到一个类 是以 Trait声明的。平时在工作中从来没有用过,于是就去看了下官方文档。原来这个类早在php5.4.0就有了。可惜在项目中从来没有用过。   Trait看...

    ermaoL 评论0 收藏0
  • 【日常手记】之Laravel5.3

    摘要:个人网站最近刚写了一个手机在线播放的电影站使用日常手记更新使用的的查询作用域的本地作用域去自定义可复用的约束集合,方便链式调用什么是本地查询作用域本地作用域允许我们定义通用的约束集合以便在应用中复用。 关于作者 程序开发人员,不拘泥于语言与技术,目前主要从事PHP和前端开发,使用Laravel和VueJs,App端使用Apicloud混合式开发。合适和够用是最完美的追求。 个人网站:...

    kidsamong 评论0 收藏0
  • PHP 特性trait (二)

    摘要:命名冲突如果使用了多个并且多个中的命名有重复,那么这个时候就会产生一个致命的错误。避免的冲突引起的错误。但是中的属性跟方法,如果需要被外部的类使用的话,必须为,即使是也是不能被外部的类所使用的。 前面我们介绍了Trait的基本使用,下面来介绍下Trait比较复杂的用法 使用多个Trait trait Member { public function info() { ...

    yeooo 评论0 收藏0
  • PHPTrait详解及其应用

    摘要:很明显这违背了原则。而方式则避免了上述的不足之处相对优雅的实现了代码的复用。中属性的优先级说到优先级就必须要有一个对比的参照物这里的参照对象时引用的类及其父类。其他介绍的的文章如何使用文章首发在中详解及其应用 从PHP的5.4.0版本开始,PHP提供了一种全新的代码复用的概念,那就是Trait。Trait其字面意思是特性、特点,我们可以理解为,使用Trait关键字,可以为PHP中的类添...

    Blackjun 评论0 收藏0
  • PHP相关

    摘要:的机器学习库的机器学习库,包括算法交叉验证神经网络等内容。在即将到来的大会上,她将和大家分享在机器学习领域的全新可能。入门总结入门相关,如安装配置基本使用等。 基于 Swoole 开发 PHP 扩展 Swoole-1.9.7 增加了一个新特性,可以基于 Swoole 使用 C++ 语言开发扩展模块,在扩展模块中可以注册 PHP 内置函数和类。现在可以基于 Swoole 来编写 PHP ...

    lewinlee 评论0 收藏0

发表评论

0条评论

wind3110991

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<