• PHP--traits


    从PHP5.4.0起,PHP实现了代码复用的一个方法,称为traits。
    traits试图用来解决像PHP这样的面向对象语言中只支持单继承的问题。它的作用是允许我们在不使用继承的情况下为一个类增加功能。
    要创建一个trait,需要使用trait关键字,后面跟着它的名字和定义。
    trait tSomeTrait{
            function someFunction(){
                    // Do Whatener
            }
    }
    

    像一个接口或者是一个抽象类一样,trait是不能被初始化的,也就是说,我不能从一个trait创建一个对象。然而我们可以通过使用use关键字在一个类的定义中为这个类增加一个trait。

    class SomeClass{
        use tSomeTrait;
        //Rest of class
    }
    

    就像在一个PHP脚本中使用include包含一个外部的PHP脚本就能使其马上生效了一样,在这里增加一个use traitName语句就能够使这个trait的代码对当前类生效,、。

    然后,当我们像之前那样子定义完了之后,当我们创建了一个类的时候,这个对象就有了somefunction()方法:
    $obj = new SomeClass();
    $obj->someFunction();
    
    这样就可以实现了代码复用。
     
    值得注意的是:traits看上去和接口有很多地方十分相似,但是两者其实有天壤之别。一个接口会强制执行更严格的编程规则,一边类被设计为实现特定的方法。相反的,一个trait使方法对一个类可用,即便它没有出现在类中被定义。
    应用场景:在解决一些比较少见的面向对象编程的问题的时候,使用trait可能很有用,但是,traits也可能被误用在某些本来有其他更好的解决方法的场合。
  • 相关阅读:
    json解析与序列化
    js实现千位分隔符
    map.(parseInt)方法详解
    js实现翻转一个字符串
    一个满屏 品 字布局 如何设计?
    new操作符实现过程
    常见的函数式编程模型
    Azure DevOps Server 2019 (TFS)安装教程
    在Azure DevOps Server (TFS) 中修改团队项目名称
    你好,Azure DevOps Server 2019;再见,Team Foundation Server
  • 原文地址:https://www.cnblogs.com/zhouyuqin/p/5168588.html
Copyright © 2020-2023  润新知