Hozzáférési módosítók és trait-ok az OOP-ban PHP-ben
Fel kell hívnunk a figyelmet arra, hogy a trait-ek használata nem öröklés. Az öröklés során a privát metódusok és tulajdonságok nem öröklődnek.
A trait-ekben minden éppen ellenkezőleg: a trait-et használó osztályban mind a publikus, mind a privát metódusok és tulajdonságok elérhetőek lesznek.
Nézzünk egy példát. Tegyük fel, hogy van a következő trait-ünk privát metódussal:
<?php
trait TestTrait
{
private function method()
{
return '!!!';
}
}
?>
Kapcsoljuk össze trait-ünket az osztállyal:
<?php
class Test
{
use TestTrait;
}
new Test;
?>
Használjuk a trait privát metódusát:
<?php
class Test
{
use TestTrait; // trait csatlakoztatása
public function __construct()
{
echo $this->method(); // kiírja '!!!'-t
}
}
new Test;
?>