Piekļuves modifikatori un treiti OOP PHP
Jāpievērš uzmanība tam, ka treitu izmantošana nav mantošana. Mantošanas gadījumā privātās metodes un īpašības netiek mantotas.
Treitos ir otrādi: klasē, kas izmanto treitu, būs pieejamas gan publiskās, gan privātās metodes un īpašības.
Apskatīsim piemērā. Pieņemsim, ka mums ir šāds treits ar privātu metodi:
<?php
trait TestTrait
{
private function method()
{
return '!!!';
}
}
?>
Pievienosim mūsu treitu klasei:
<?php
class Test
{
use TestTrait;
}
new Test;
?>
Izmantosim treita privāto metodi:
<?php
class Test
{
use TestTrait; // pievienojam treitu
public function __construct()
{
echo $this->method(); // izvadīs '!!!'
}
}
new Test;
?>