iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP trait的使用方法
  • 926
分享到

PHP trait的使用方法

php开发语言 2023-09-02 19:09:12 926人浏览 薄情痞子
摘要

trait、继承和实例化的区别: 对于当前一个类需要用到另一个或多个类的方法的情况,我们一般会想到的方式有继承、直接实例化另外一个或多个类等等的方法,下面来对比一下这些方法和Trait类的区别: 1、继承方式:对于继承,可以完美地复用另一

trait、继承和实例化的区别:


对于当前一个类需要用到另一个或多个类的方法的情况,我们一般会想到的方式有继承、直接实例化另外一个或多个类等等的方法,下面来对比一下这些方法和Trait类的区别:
1、继承方式:对于继承,可以完美地复用另一个类的一些方法,但是对于需要复用多个类的方法时,PHP是不支持多继承的,而且只能访问public和protected方法;
2、与直接实例化的区别:我们也可以在当前类中直接实例化要用到的A类与B类,但是这种方法在控制访问范围反面,只允许访问A、B类中public的方法;
3、使用Trait类则完全将A、B两个类的方法导入到当前类中,可以视为当前类的一部分,唯一区别是可以存在于当前类同名的方法,此时由优先级顺序来控制。

Trait类的优先级控制

Trait类与当前使用类、继承的基类之间的调用优先级顺序如下:
当前使用类>Trait类>继承的基类。当存在同名方法时,会根据优先级覆盖掉同名的类。

多个Trait类的冲突控制

php中,如果当前类use了两个Trait类,同时两个trait类都存在一个同名的方法,此时如果没有明确解决冲突将会产生一个致命错误。
对于这种情况,PHP官方给出了两个解决方案:
1、insteadof关键字:通过该关键字指定方法名冲突时该使用哪个Trait类的方法,即:
如果C类use了A、B两个Trait类,且A、B两个类都存在a、b方法,则在C类use A、B类时使用insteadof声明冲突的解决方法即可:

// An highlighted blockuse A, B {  B::a insteadof A; //a方法冲突时使用B类的a方法而不使用A类的a方法  A::b insteadof B; //b方法冲突时使用A类的b方法而不使用B类的b方法}

as关键字:通过as关键字将同名方法指定为一个别名,且仅作用于当前类中。示例如下:

use A, B {  B::a as c; //声明B类的a方法为c,作用于该类  A::b as d; //声明A类的b方法为d,作用于该类}

PHP多继承示例 

class Base{  public function sayHello(){    echo "hello ";  }}trait SayWorld{  public function sayHello(){    parent::sayHello();    echo "world".PHP_EOL;  }}trait SayWorld2{  public function sayHello2(){    echo "PHP".PHP_EOL;  }}class MyHelloWorld extends Base{  use SayWorld,SayWorld2;}$s = new MyHelloWorld();$s->sayHello();$s->sayHello2();

来源地址:https://blog.csdn.net/niuxitong/article/details/131137382

--结束END--

本文标题: PHP trait的使用方法

本文链接: https://www.lsjlt.com/news/391281.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PHP trait的使用方法
    trait、继承和实例化的区别: 对于当前一个类需要用到另一个或多个类的方法的情况,我们一般会想到的方式有继承、直接实例化另外一个或多个类等等的方法,下面来对比一下这些方法和Trait类的区别: 1、继承方式:对于继承,可以完美地复用另一...
    99+
    2023-09-02
    php 开发语言
  • php中trait的使用方法
    这篇文章主要介绍了php中trait的使用方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。php trait是一种代码复用技术,为PHP的单继承限制提供了一套灵活的代码复用...
    99+
    2023-06-15
  • PHP中trait的使用和同时引入多个trait时同名方法冲突的处理方法
    目录一、trait的使用二、当父类、子类和trait的方法重名三、类内同时引入多个trait四、引入多个trait有同名方法五、当引入多个trait,同名方法解冲突后,同时使用所有冲...
    99+
    2023-05-18
    PHP中trait的使用 PHP多个trait冲突
  • PHP中Trait的用法介绍
    本篇内容介绍了“PHP中Trait的用法介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 继承 VS 多态 VS Trait现在有Pu...
    99+
    2023-06-17
  • 怎么使用PHP中的trait能力
    这篇文章将为大家详细讲解有关怎么使用PHP中的trait能力,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。trait能力在PHP中的使用相信大家对trait已经不陌生了,早在5.4时,trait就已经出现...
    99+
    2023-06-15
  • PHP中trait的基础语法
    小编给大家分享一下PHP中trait的基础语法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 类中的某些成员如何才能被其他类使用呢?使用继承的话,这继承...
    99+
    2023-06-06
  • trait怎么在php中使用
    本篇文章给大家分享的是有关trait怎么在php中使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。php是什么语言php,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP...
    99+
    2023-06-14
  • PHP用trait或组合模式实现多继承的方法
    本篇内容主要讲解“PHP用trait或组合模式实现多继承的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP用trait或组合模式实现多继承的方法”吧!PHP的类继承只能是单继承,不能多继...
    99+
    2023-06-20
  • 使用PHP trait DTO构建可扩展的应用架构
    随着业务需求的增加和系统规模的扩大,构建可扩展的应用架构变得越来越重要。传统的开发方式往往会导致代码的冗杂和难以维护,为了解决这些问题,我们可以使用PHP中的trait和DTO(Data Transfer Object)来构建可扩展的应用架...
    99+
    2023-10-21
    PHP dto trait
  • 使用PHP trait DTO简化API开发流程
    随着互联网的快速发展,Web API的使用越来越广泛。开发人员需要频繁地处理数据传输对象(DTO),以便在客户端和服务器之间传递数据。在PHP开发中,有一种强大的特性可以极大地简化API开发流程,那就是PHP的trait特性。在本文中,我将...
    99+
    2023-10-21
    PHP dto trait
  • 使用PHP trait DTO提高代码复用性
    在PHP开发中,经常会遇到需要处理数据传输对象(Data Transfer Object,简称DTO)的情况。DTO主要用于数据的封装和传递,在不同的业务逻辑中可能会被多次使用。为了提高代码的复用性,可以使用trait来实现DTO的功能。T...
    99+
    2023-10-21
    PHP dto trait
  • 掌握PHP trait DTO的使用技巧与最佳实践
    一、什么是Trait DTO?DTO,即数据传输对象,是一种设计模式,用于封装某个业务逻辑需要的数据。它将相关数据封装在一个对象中,并暴露出对应的getter和setter方法,使得数据可以被外部访问和修改。Trait,则是PHP语言提供的...
    99+
    2023-10-21
    dto 使用技巧 trait
  • 了解PHP trait DTO的应用场景
    介绍在PHP开发中,Trait(特性)是一种为类添加方法的方式,Trait提供了代码重用的机制,可以将一些可复用的代码块添加到多个类中。而DTO(数据传输对象)是一种设计模式,用于将数据在不同层之间传递,以及对数据进行封装和处理。PHP的T...
    99+
    2023-10-21
    应用场景 (Application Scenarios) PHP Trait (特性) DTO (数据传输对象)
  • Scala Trait怎么使用
    这篇文章主要介绍“Scala Trait怎么使用”,在日常操作中,相信很多人在Scala Trait怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Scala Trait怎么使用”的疑惑有所帮助!接下来...
    99+
    2023-06-19
  • 使用PHP trait DTO实现数据传输对象的封装
    引言:在PHP开发中,常常需要进行数据传输对象(DTO)的封装,以便于在不同层之间传递数据。而使用Trait是一种非常便利的方式来实现DTO的封装。本文将介绍如何使用PHP Trait来实现DTO的封装,并提供具体的代码示例。一、什么是数据...
    99+
    2023-10-21
    PHP dto trait
  • 如何使用 trait 扩展自定义 PHP 函数?
    如何使用 trait 扩展自定义 php 函数?定义一个包含扩展方法的 trait。使用 use 关键字将 trait 包含到自定义函数中。在自定义函数中通过 $this 访问 trai...
    99+
    2024-04-23
    php trait
  • 使用PHP trait DTO简化数据传输层的实现
    在PHP开发中,经常会涉及到数据传输层的设计,用于在不同层次之间传递数据。而传统的数据传输对象(Data Transfer Object,简称DTO)的实现方式往往比较繁琐,需要手动创建类并定义各个属性和方法。为了简化这一过程,我们可以利用...
    99+
    2023-10-21
    dto PHP trait 数据传输层
  • PHP gettype()的使用方法
    本篇内容主要讲解“PHP gettype()的使用方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP gettype()的使用方法”吧!PHP中,gettype()函数可以获取变量的类型,...
    99+
    2023-06-20
  • PHP Session的使用方法
    本篇内容介绍了“PHP Session的使用方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!PHP Session使用php3本身是没有实...
    99+
    2023-06-17
  • php引用的使用方法
    本篇内容介绍了“php引用的使用方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!说明php中引用不是指针,允许用两个变量来指向同一个内容。...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作