Dieser Artikel stellt hauptsächlich die Analyse von Traits in PHP vor, die einen gewissen Referenzwert hat. Jetzt kann ich sie mit allen teilen, die sie brauchen.
Seit PHP 5.4.0 hat PHP A Methode zur Wiederverwendung von Code, sogenannte Traits.
Trait bedeutet wörtlich „Merkmale“ und „Merkmale“. Wir können verstehen, dass die Verwendung des Schlüsselworts Trait neue Funktionen zu Klassen in PHP hinzufügen kann.
Trait ist ein Code-Wiederverwendungsmechanismus, der für Sprachen mit einfacher Vererbung wie PHP vorbereitet ist. Merkmale sollen die Einschränkungen von Sprachen mit einfacher Vererbung verringern und Entwicklern die freie Wiederverwendung von Methoden in unabhängigen Klassen innerhalb verschiedener Hierarchien ermöglichen. Die Semantik der Zusammensetzung von Merkmalen und Klassen definiert eine Möglichkeit, die Komplexität zu reduzieren und die typischen Probleme zu vermeiden, die mit herkömmlicher Mehrfachvererbung und Mixin-Klassen verbunden sind.
Trait ähnelt Class, ist jedoch nur darauf ausgelegt, Funktionalität auf feinkörnige und konsistente Weise zu kombinieren. Kann nicht durch das Merkmal selbst instanziiert werden. Es fügt der traditionellen Vererbung eine Kombination horizontaler Funktionen hinzu; das heißt, es ist keine Vererbung zwischen mehreren Klassen in einer Anwendung erforderlich.
Verwendung: Durch Verwendung des Schlüsselworts „use“ in der Klasse den zu kombinierenden Trait-Namen deklarieren. Die spezifische Trait-Deklaration kann nicht instanziiert werden.
1. Grundlagen der Eigenschaften
1 2 3 4 5 6 7 8 |
|
2. Priorität
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
Von der Basisklasse geerbte Mitglieder werden von der MyHelloWorld-Methode im eingefügten SayWorld-Merkmal überschrieben. Sein Verhalten stimmt mit den in der MyHelloWorld-Klasse definierten Methoden überein. Die Rangfolge besteht darin, dass Methoden in der aktuellen Klasse Merkmalsmethoden überschreiben, die wiederum Methoden in der Basisklasse überschreiben.
3. Mehrere Merkmale
Mehrere Merkmale werden in der Verwendungsanweisung durch Kommas getrennt aufgelistet und können alle in eine Klasse eingefügt werden.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
4. Konfliktlösung
Wenn zwei Merkmale eine Methode mit demselben Namen einfügen, kommt es zu einem Konflikt, wenn der Konflikt nicht gelöst wird explizit Ein schwerwiegender Fehler.
Um den Namenskonflikt mehrerer Merkmale in derselben Klasse zu lösen, müssen Sie den Operator insteadof verwenden, um explizit anzugeben, welche der widersprüchlichen Methoden verwendet werden sollen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
Mit der obigen Methode können nur andere Methoden ausgeschlossen werden. Der as-Operator kann einen Alias für eine Methode einführen. Beachten Sie, dass der Operator as die Methode weder umbenennt noch deren Methoden beeinflusst.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
5. Ändern Sie die Zugriffskontrolle der Methode
Die Verwendung der as-Syntax kann auch zum Anpassen verwendet werden die Zugriffskontrolle der Methode.
1 2 3 4 5 6 7 8 |
|
6. Merkmalsgruppe
So wie eine Klasse Merkmale verwenden kann, können auch andere Merkmale Merkmale verwenden. Durch die Verwendung eines oder mehrerer Merkmale beim Definieren eines Merkmals können Sie einige oder alle Mitglieder anderer Merkmale kombinieren.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
7. Abstrakte Mitglieder
Um verbindliche Anforderungen an die verwendeten Klassen zu stellen, unterstützen Merkmale die Verwendung abstrakter Methoden.
1 2 3 4 5 6 7 8 |
|
8. Eigenschaften statischer Mitglieder
Eigenschaften können durch statische Mitglieder und statische Methoden definiert werden.
1 2 3 4 5 6 7 |
|
1 2 3 4 5 6 7 |
|
9. Attribute
Trait kann auch Attribute definieren.
1 2 3 4 5 |
|
Trait Nach der Definition eines Attributs kann die Klasse keine Attribute mit demselben Namen definieren, da sonst ein schwerwiegender Fehler auftritt. Es gibt eine Ausnahme: Eigenschaften sind kompatibel (gleiche Zugriffssichtbarkeit, anfänglicher Standardwert). Wenn das Attribut vor PHP 7.0 kompatibel war, gab es eine E_STRICT-Erinnerung.
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Studium aller hilfreich ist. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.
Verwandte Empfehlungen:
So verwenden Sie Elasticsearch in PHP
Das obige ist der detaillierte Inhalt vonAnalyse von Merkmalen in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!