zoukankan      html  css  js  c++  java
  • 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也可能被误用在某些本来有其他更好的解决方法的场合。
  • 相关阅读:
    网站添加背景音乐
    解决项目上的红色感叹号
    1.12那些年你不知道的爬虫面试题
    1.11you-get 视频爬取
    1.10pytesseract
    1.9Pyppeteer
    1.8request-html
    1.7XPath
    1.6Selenium XPath
    1.5cookies
  • 原文地址:https://www.cnblogs.com/zhouyuqin/p/5168588.html
Copyright © 2011-2022 走看看