Heim  >  Artikel  >  Backend-Entwicklung  >  Analysieren Sie die Prinzipien und die Verwendung des Trait-Mechanismus in PHP

Analysieren Sie die Prinzipien und die Verwendung des Trait-Mechanismus in PHP

青灯夜游
青灯夜游nach vorne
2020-04-23 09:19:362920Durchsuche

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.

Analysieren Sie die Prinzipien und die Verwendung des Trait-Mechanismus in PHP

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen