⊗ppOpTrMP 82 of 107 menu

Priorität von Methoden bei der Arbeit mit Traits in OOP in PHP

Wenn eine Klasse und ein Trait eine gleichnamige Methode haben, überschreibt die Methode der Klasse die Methode des Traits:

<?php trait TestTrait { // Methode mit dem Namen method: public function method() { return 'trait'; } } class TestClass { use TestTrait; // Gleiche Methode mit dem Namen method: public function method() { return 'test'; } } $test = new TestClass; echo $test->method(); // gibt 'test' aus - die Methode der Klasse selbst wurde ausgeführt ?>

Wenn die Klasse selbst keine solche Methode hat, aber ein Namenskonflikt zwischen den Methoden des Traits und den Methoden der Elternklasse besteht, haben die Methoden des Traits Priorität:

<?php trait TestTrait { // Methode mit dem Namen method: public function method() { return 'trait'; } } // Elternklasse: class ParentClass { // Methode mit dem Namen method: public function method() { return 'parent'; } } // Klasse erbt die Methode method von der Elternklasse: class TestClass extends ParentClass { use TestTrait; } $test = new TestClass; echo $test->method(); // gibt 'trait' aus, da der Trait Priorität hat ?>
bydeenesfrptru