Zugriffsmodifikatoren und Traits in OOP in PHP
Es ist darauf hinzuweisen, dass die Verwendung von Traits keine Vererbung ist. Bei der Vererbung werden private Methoden und Eigenschaften nicht vererbt.
Bei Traits ist es umgekehrt: In der Klasse, die den Trait verwendet, sind sowohl öffentliche als auch private Methoden und Eigenschaften des Traits verfügbar.
Schauen wir uns ein Beispiel an. Nehmen wir an, wir haben den folgenden Trait mit einer privaten Methode:
<?php
trait TestTrait
{
private function method()
{
return '!!!';
}
}
?>
Binden wir unseren Trait in eine Klasse ein:
<?php
class Test
{
use TestTrait;
}
new Test;
?>
Verwenden wir die private Methode des Traits:
<?php
class Test
{
use TestTrait; // Trait einbinden
public function __construct()
{
echo $this->method(); // gibt '!!!' aus
}
}
new Test;
?>