In diesem Artikel werden die Prinzipien und die Verwendung des Trait-Mechanismus in PHP analysiert. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein.
Trait-Einführung:
1 Seit PHP5.4 hat PHP eine Code-Wiederverwendungsmethode namens Trait implementiert.
2. Trait ist ein Code-Wiederverwendungsmechanismus, der für Sprachen mit einfacher Vererbung wie PHP vorbereitet ist.
3. Um die Einschränkungen einer einzelnen Vererbungssprache zu verringern, ermöglicht Trait Entwicklern die freie Wiederverwendung von Methoden in unabhängigen Klassen in verschiedenen Hierarchien.
4. Trait realisiert die Wiederverwendung von Code und durchbricht die Einschränkung der Einzelvererbung.
5. Trait ist eine Klasse, die jedoch nicht instanziiert werden kann.
6. Wenn die Methoden in der Klasse den gleichen Namen haben, hat die aktuelle Klasse>Merkmal>übergeordnete Klasse;
7. Wenn die Methoden mehrerer Merkmalsklassen den gleichen Namen haben , müssen Sie den Zugriff angeben, der andere Methoden aliasiert.
Beispiel:
trait Demo1{ public function hello1(){ return __METHOD__; } } trait Demo2{ public function hello2(){ return __METHOD__; } } class Demo{ use Demo1,Demo2;//继承Demo1和Demo2 public function hello(){ return __METHOD__; } public function test1(){ //调用Demo1的方法 return $this->hello1(); } public function test2(){ //调用Demo2的方法 return $this->hello2(); } } $cls = new Demo(); echo $cls->hello(); echo "<br>"; echo $cls->test1(); echo "<br>"; echo $cls->test2();
Laufendes Ergebnis:
Demo::hello Demo1::hello1 Demo2::hello2
Mehrere Merkmalsmethoden mit demselben Namen:
trait Demo1{ public function test(){ return __METHOD__; } } trait Demo2{ public function test(){ return __METHOD__; } } class Demo{ use Demo1,Demo2{ //Demo1的hello替换Demo2的hello方法 Demo1::test insteadof Demo2; //Demo2的hello起别名 Demo2::test as Demo2test; } public function test1(){ //调用Demo1的方法 return $this->test(); } public function test2(){ //调用Demo2的方法 return $this->Demo2test(); } } $cls = new Demo(); echo $cls->test1(); echo "<br>"; echo $cls->test2();
Laufergebnis:
Demo1::test Demo2::test
Weitere Informationen zu diesem Thema finden Sie auf der PHP-Chinese-Website! !
Das obige ist der detaillierte Inhalt vonAnalysieren Sie die Prinzipien und die Verwendung des Trait-Mechanismus in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!