⊗ppOpTrInr 77 of 107 menu

Traits in OOP in PHP

Wie Sie bereits wissen, kann in PHP nicht von mehreren Klassen gleichzeitig geerbt werden, nur von einer. Wir haben bereits eine Lösung für dieses Problem kennengelernt: anstatt Vererbung zu verwenden, Objekte einiger Klassen in anderen zu verwenden.

In PHP gibt es einen anderen Weg. Er besteht in der Verwendung von Traits. Ein Trait stellt eine Sammlung von Eigenschaften und Methoden dar, die in eine andere Klasse eingebunden werden können. Dabei werden die Eigenschaften und Methoden des Traits von der Klasse wahrgenommen, als wären es ihre eigenen.

Die Syntax eines Traits ist die gleiche wie bei einer Klasse, mit der Ausnahme, dass der Trait-Name mit dem Schlüsselwort trait deklariert werden muss.

Eine Instanz eines Traits kann nicht erstellt werden - Traits sind nur für die Einbindung in andere Klassen vorgesehen. Die Einbindung selbst erfolgt mit dem Befehl use, nach dem durch Leerzeichen getrennt der Name des einzubindenden Traits angegeben wird. Dieser Befehl wird am Anfang der Klasse geschrieben.

Sehen wir uns die Anwendung von Traits an einem praktischen Beispiel an. Angenommen, wir haben den folgenden Trait Helper, der die privaten Eigenschaften name und age sowie ihre Getter enthält:

<?php trait Helper { private $name; private $age; public function getName() { return $this->name; } public function getAge() { return $this->age; } } ?>

Angenommen, wir haben auch die folgende Klasse User, in deren Konstruktor die Eigenschaften name und age gesetzt werden:

<?php class User { public function __construct($name, $age) { $this->name = $name; $this->age = $age; } } ?>

Fügen wir nun Getter für die Eigenschaften unserer Klasse User hinzu. Schreiben wir sie aber nicht in der Klasse selbst, sondern binden wir einfach den Trait Helper ein, in dem diese Methoden bereits implementiert sind:

<?php class User { use Helper; // Trait einbinden public function __construct($name, $age) { $this->name = $name; $this->age = $age; } } ?>

Nach dem Einbinden des Traits erscheinen in unserer Klasse die Methoden und Eigenschaften dieses Traits. Dabei greifen wir auf sie zu, als wären es Methoden und Eigenschaften der Klasse selbst:

<?php $user = new User('john', 30); echo $user->getName(); // gibt 'john' aus echo $user->getAge(); // gibt 30 aus ?>

Implementieren Sie die Klasse City mit den Eigenschaften name, age, population und Gettern für diese. Lassen Sie unsere Klasse zur Verkürzung ihres Codes den bereits von uns erstellten Trait Helper verwenden.

Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen