Adgangsmodifikatorer og træk i OOP i PHP
Det bør bemærkes, at brugen af træk ikke er arv. Ved arv nedarves private metoder og egenskaber ikke.
I træk er det omvendt: i den klasse, der bruger trækket, vil både offentlige og private metoder og egenskaber fra klassen være tilgængelige.
Lad os se på et eksempel. Antag, at vi har følgende træk med en privat metode:
<?php
trait TestTrait
{
private function method()
{
return '!!!';
}
}
?>
Lad os tilslutte vores træk til klassen:
<?php
class Test
{
use TestTrait;
}
new Test;
?>
Lad os bruge trækkets private metode:
<?php
class Test
{
use TestTrait; // tilslutter træk
public function __construct()
{
echo $this->method(); // vil udskrive '!!!'
}
}
new Test;
?>