Die Funktion von PHP-Merkmalen ist für einzelne Vererbungssprachen wie PHP konzipiert. Sie soll es Entwicklern ermöglichen, eine Reihe von Methoden problemlos zwischen mehreren Klassen in verschiedenen Vererbungssystemen zu teilen, um die verursachten Probleme zu reduzieren durch Einzelvererbung.
Traits
ist für Sprachen mit einfacher Vererbung wie PHP konzipiert. Es soll Entwicklern die einfache gemeinsame Nutzung einer Reihe von Methoden zwischen mehreren Klassen in verschiedenen Vererbungssystemen ermöglichen, um die durch die Einzelvererbung verursachten Einschränkungen zu verringern. Die Kombination von Merkmalen und Klassen vermeidet eine Reihe von Problemen, die durch Mehrfachvererbung verursacht werden.
Verwendung von
Schauen Sie sich zunächst das Beispiel im offiziellen Dokument an:
<?php trait ezcReflectionReturnInfo { function getReturnType() { /*1*/ } function getReturnDescription() { /*2*/ } } class ezcReflectionMethod extends ReflectionMethod { use ezcReflectionReturnInfo; /* ... */ } class ezcReflectionFunction extends ReflectionFunction { use ezcReflectionReturnInfo; /* ... */ } ?>
Wie aus dem obigen Beispiel ersichtlich ist, enthält der Funktionssatz ezcReflectionReturnInfo
zwei Methoden: getReturnType
und getReturnDescription
, während die folgenden zwei Unterklassen von verschiedenen übergeordneten Klassen erben, diese beiden Methoden jedoch über use ezcReflectionReturnInfo
wiederverwenden können. Einfach und bequem.
Verwandte Lernempfehlungen: PHP-Programmierung vom Einstieg bis zur Beherrschung
Notizen
Wenn es Methoden mit demselben Namen in den Merkmalen der Unterklasse, der übergeordneten Klasse und der Verwendung gibt, ist die Priorität dieser drei Methoden: Unterklasse>
Sie können mehrere Merkmale gleichzeitig verwenden, aber Sie können keine Merkmale mit demselben Namen verwenden<?php trait A { public function smallTalk() { echo 'a'; } public function bigTalk() { echo 'A'; } } trait B { public function smallTalk() { echo 'b'; } public function bigTalk() { echo 'B'; } } class Talker { use A, B { B::smallTalk insteadof A; A::bigTalk insteadof B; } }
class Aliased_Talker { use A, B { B::smallTalk insteadof A; A::bigTalk insteadof B; B::bigTalk as talk; } }
class MyClass2 { use HelloWorld { sayHello as private myPrivateHello; } }
<?php trait Hello { public function sayHello() { echo 'Hello '; } } trait World { public function sayWorld() { echo 'World!'; } } trait HelloWorld { use Hello, World; }
Das obige ist der detaillierte Inhalt vonWelche Funktionen haben PHP-Traits?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!