PHP 特性之 trait

本文介绍了PHP中的Trait特性,用于解决单继承限制下的代码复用问题。 Trait可以被视为类的部分实现,可被多个无关类导入。讨论了Trait的简单使用、优先级、使用多个Trait时的命名冲突解决、 Trait的抽象成员和静态成员的处理,以及如何通过访问修饰符控制权限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

阐述

在阅读 laravel 文档的时候看到一个类是以 Trait 声明的。

平时在工作中从来没有用过,于是就去看了下官方文档。原来这个类早在 php5.4.0 就有了,可惜在项目中从来没有用过。

Trait 看上去既像类又像接口,其实都不是,Trait 可以看做类的部分实现,可以混入一个或多个现有的PHP类中,其作用有两个:

  • 表明类可以做什么;
  • 提供模块化实现;

Trait 是一种代码复用技术,为PHP的单继承限制提供了一套灵活的代码复用机制。

为什么使用 Trait ?

PHP语言使用一种典型的单继承模型,在这种模型中,我们先编写一个通用的根类,实现基本的功能,然后扩展这个根类,创建更具体的子类,直接从父类继承实现。

这叫做继承层次结构,很多编程语言都使用这个模式。

大多数时候这种典型的继承模型能够良好运作,但是如果想让两个无关的PHP类具有类似的行为,应该怎么做呢 ?

Trait 就是为了解决这种问题而诞生的。
Trait 能够把模块化的实现方式注入多个无关的类中,从而提高代码复用。

简单使用

<?php
trait 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知其黑、受其白

喝个咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值