Åtkomstmodifierare och traits i OOP i PHP
Det är viktigt att uppmärksamma att användning av traits inte är arv. Vid arv ärvls inte privata metoder och egenskaper.
Med traits är det tvärtom: i klassen som använder traitet kommer både publika och privata metoder och egenskaper att vara tillgängliga.
Låt oss titta på ett exempel. Antag att vi har följande trait med en privat metod:
<?php
trait TestTrait
{
private function method()
{
return '!!!';
}
}
?>
Låt oss använda vårt trait i en klass:
<?php
class Test
{
use TestTrait;
}
new Test;
?>
Låt oss använda traitets privata metod:
<?php
class Test
{
use TestTrait; // använder traitet
public function __construct()
{
echo $this->method(); // skriver ut '!!!'
}
}
new Test;
?>