Heim > Backend-Entwicklung > PHP-Tutorial > Detaillierte Erläuterung der Verwendung von Merkmalen in PHP

Detaillierte Erläuterung der Verwendung von Merkmalen in PHP

高洛峰
Freigeben: 2016-10-17 10:41:31
Original
1100 Leute haben es durchsucht

Traits in PHP 5.4 ist eine neu eingeführte Funktion. Ich weiß wirklich nicht, wie ich sie genau ins Chinesische übersetzen soll. Sein eigentlicher Zweck besteht darin, in manchen Situationen Mehrfachvererbung zu verwenden, aber PHP verfügt nicht über Mehrfachvererbung, also wurde so etwas erfunden.

Traits können als eine Reihe von Methoden verstanden werden, die von verschiedenen Klassen aufgerufen werden können, aber Traits sind keine Klassen! Kann nicht instanziiert werden. Schauen wir uns zunächst die Syntax anhand eines Beispiels an:

<?php
trait myTrait{
    function traitMethod1(){}
    function traitMethod2(){}
}
//然后是调用这个traits,语法为:
class myClass{
    use myTrait;
}
//这样就可以通过use myTraits,调用Traits中的方法了,比如:
$obj = new myClass();
$obj-> traitMethod1 ();
$obj-> traitMethod2 ();
Nach dem Login kopieren

Als nächstes untersuchen wir, warum Merkmale verwendet werden. Es gibt beispielsweise zwei Klassen, nämlich „business“ (Geschäftsperson) und „Individuum“ (Einzelperson). Der herkömmliche Ansatz besteht darin, eine übergeordnete Klasse so zu abstrahieren, dass beide Klassen gemeinsame Merkmale haben, z. B. „Client“, und die Zugriffsattribute „Adresse“, „Geschäft“ und „Person“ in der Client-Klasse so festzulegen, dass sie diese erben, wie im Folgenden gezeigt Code:

// Class Client  
class Client  {  
    private $address;  
    public getAddress() {  
        return $this->address;  
    }       
    public setAddress($address) {  
        $this->address = $address;    
    }  
}  
class Business extends Client{  
    //这里可以使用address属性  
}  
// Class Individual  
class Individual extends Client{  
//这里可以使用address属性  
}
Nach dem Login kopieren

Aber was ist, wenn es eine andere Klasse namens order gibt, die auf dasselbe Adressattribut zugreifen muss? Die Auftragsklasse kann die Client-Klasse nicht erben, da dies nicht den Prinzipien von OOP entspricht. Zu diesem Zeitpunkt sind Merkmale hilfreich. Sie können ein Merkmal definieren, um diese öffentlichen Eigenschaften zu definieren.

// Trait Address
trait Address{
    private $address;
    public getAddress() {
        eturn $this->address;
    }
    public setAddress($address) {
        $this->address = $address;
    }
}
// Class Business
class Business{
    use Address;
    // 这里可以使用address属性
}
// Class Individual
class Individual{
    use Address;
    //这里可以使用address属性
}
// Class Order
class Order{
    use Address;
    //这里可以使用address属性
}
Nach dem Login kopieren


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage